http://www.perlmonks.org?node_id=393912

brycen has asked for the wisdom of the Perl Monks concerning the following question:

Let's say I have a subroutine that "dies". How can I determine what line called the subroutine? Debugger "Stack Trace" seems the obvious answer, but it does not work for me:
 print "Hello\n";
 a(0);
 print "Middle\n";
 a(1);
 print "Goodbye\n";

 sub a {
    $parameter = shift;
    if( $parameter ) { die };
 }

bash> perl -d test.pl 
Default die handler restored.
Loading DB routines from perl5db.pl version 1.07
Editor support available.

DB<1> c
  Hello
  Middle
  Died at test.pl line 10.
  Debugged program terminated.
  
DB<1> T
  $ = DB::fake::at_exit() called from file
  /usr/local/lib/perl5/5.6.1/perl5db.pl' line 2697
  $ = DB::END() called from file `test.pl' line 0
  $ = eval {...} called from file `test.pl' line 0

DB<1> 
While it died at line 10, what line called the subroutine that died?