#!/usr/bin/env perl
#
# To get the filtered code, try this:
# perl -c -MFilter::ExtractSource test.pl | grep -v '^use Try::Harder;'
#
use strict;
use warnings;
use lib './lib';
use Try::Harder;
use Data::Dumper;
print "BEGIN\n";
sub foo {
my $z = 1;
try {
print "TRYING\n";
#return "YAAY!";
my $z = 8;
die "EXCEPTION $z \n";
}
catch {
print "CAUGHT: $@";
$z = 7;
# should return this value from the sub
#return "YAAY!!"
}
finally {
# should always output
print "FINALLY, [$@]\n";
# finally doesn't support return
return "IMPOSSIBLE!"
}
print "\$z = $z\n";
print "OOPS! $@\n";
return "FAIL";
}
my $x = foo();
print "RETURNED: " . Dumper $x;
# returning from outside a sub makes no sense.
#try { print "TRYING AGAIN\n"; } #die "EXCEPTION\n" }
try { print "TRYING AGAIN\n"; }
catch { print "CAUGHT: $@\n" }
finally { print "FINALLY: CAUGHT [$@]\n" }
print "END\n";