sub iDieSometimes{ rand() > .5 ? return 12345 : die "T'is a far, far...Oh shit! Aaaaaaaargh|" };; $n = eval{ iDieSometimes() } and print "returned $n" or print "It died with: $@";; It died with: T'is a far, far...Oh shit! Aaaaaaaargh| at (eval 11) line 1, line 10. $n = eval{ iDieSometimes() } and print "returned $n" or print "It died with: $@";; It died with: T'is a far, far...Oh shit! Aaaaaaaargh| at (eval 11) line 1, line 11. $n = eval{ iDieSometimes() } and print "returned $n" or print "It died with: $@";; returned 12345 $n = eval{ iDieSometimes() } and print "returned $n" or print "It died with: $@";; returned 12345 $n = eval{ iDieSometimes() } and print "returned $n" or print "It died with: $@";; returned 12345 $n = eval{ iDieSometimes() } and print "returned $n" or print "It died with: $@";; It died with: T'is a far, far...Oh shit! Aaaaaaaargh| at (eval 11) line 1, line 15.