+
+if ($error) {
+ close $fh
+ or warn "Can't unlink $file after error: $!";
+} else {
+ if (close $fh) {
+ do $file and exit;
+ $error = "Can't load generated $file: $@";
+ } else {
+ $error = "Can't close $file: $!";
+ }
+}
+
+# It's going very wrong, so try to remove the botched file.
+
+unlink $file
+ or warn "Can't unlink $file after error: $!";
+die $error;
+
+# ex: set ts=8 sts=4 sw=4 et: