#!/usr/bin/perl use Modern::Perl '2015'; use Try::Tiny; sub foo { try { say 'foo try'; die; return 'try'; } catch { say 'foo catch'; return 'catch'; }; say 'foo outer'; return 'outer'; } sub bar { eval { say 'bar try'; die; return 'try'; } or do { say 'bar catch'; return 'catch'; }; say 'fos outer'; return 'outer'; } say 'begin'; my $r = foo(); say $r; say "########"; my $s = bar(); say $s; say 'end';