#!/usr/bin/perl use Carp; eval { local $SIG{ALRM} = sub { croak "timed out" }; alarm 3; # ... # have it hang in line 12 my $s = ; # ... alarm 0; }; print "$@\n" if $@; #### timed out at ./645816.pl line 6 main::__ANON__('ALRM') called at ./645816.pl line 12 eval {...} called at ./645816.pl line 12 eval {...} called at ./645816.pl line 5