my $msg = " at yourbadscript line your mistake"; if( defined $. ) { local $@ = ''; eval { die; }; if($@ =~ /^Died at .*(, <.*?> line \d+).$/ ) { $msg .= $1; } } $msg .= ".\n"; die $msg;