Wenn die Klausel hinter dem "or" zu kompliziert wird, ist ein einfaches "if" doch schöner, oder?
if (not File::Copy::copy( $srcpath, $dstpath )) {
error_email($Config{smtp},$Config{from}, $Config{to} $Config{subject}, "FEHLER:...");
start_vmmaschine();
print FILE strftime("%a, %d %b %Y %H:%M:%S Es ist ein Fehler beim...", localtime);
die;
}
Was die Fehlerausgabe mit dem strftime angeht: Ich finde es praktischer, für so etwas eine eigene sub zu haben, die sich um Timestamps etc. kümmert. Mit
caller() kommt man da auch an Informationen, wo der Fehler aufgetreten ist.