use strict; use warnings; use Scalar::Util 'dualvar'; for(my $ii = 1; $ii < 4; $ii++) { my $a = foo($ii); if($a < 0) # <-- { print "Fail occured with code: $a\n"; } else { print "Success\n"; } } sub foo { my $num = shift; if($num == 1) { return -1; } elsif($num == 2) { return -2; } else { return dualvar 0, "true\n"; # <-- } }