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