#!/usr/bin/perl -lw use strict; use diagnostics; sub do_foo { die "err" if $_==2; $_!=4 } sub do_bar { "..."; } for (1..5) { my $flag = 1; eval { $flag &&= do_foo(); $flag &&= do_bar(); }; if ($@) { warn $@; next; } next if (!$flag); print; }