sub foo { eval { my $m = shift; die $m; }; return; } sub bar { my $m = shift; $@ = $m . ' at ' . __FILE__ . ' line ' . __LINE__ . "\n"; return } foo("foo message"); print "foo $@"; bar("bar message"); print "bar $@";