So change it toforeach my $file (@files){ ... mkdir(...) or die("..."); move(...) or die("..."); ... }
foreach my $file (@files){ ... mkdir(...) or do { warn("..."); next }; move(...) or do { warn("..."); next }; ... }
or
foreach my $file (@files){ if (!eval { ... mkdir(...) or die("..."); move(...) or die("..."); ... 1; }) { die("Error processing file $file: $@"); } }
Update: Better yet, use a sub!
sub process_file { my ($file) = @_; ... mkdir(...) or die("..."); move(...) or die("..."); ... } foreach my $file (@files){ if (!eval { process_file($file); 1 }) { die("Error processing file $file: $@"); } }
In reply to Re: how do i force a script to execute even when it encounters an error?
by ikegami
in thread how do i force a script to execute even when it encounters an error?
by smanicka
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |