eval { for my $case ( @cases ) { if (!interesting($case)) { next; } process($case); } }; #### for my $case ( @cases ) { eval { if (!interesting($case)) { next; } process($case); }; if ($@) { print "$case had errors:$@"; } } #### use warnings FATAL=>'all'; #### #!perl -l $|++; use strict; use warnings; use warnings FATAL => 'all'; no warnings 'exiting'; # comment this out to change behaviour. { eval { next }; print "foo" } print "bar"; print "---"; for (1..10) { eval { print "bar"; next; print "foo"; }; print "Baz"; }