in reply to Automatic Debugging

I'm not sure what you gain by including code when the debugger already does this...

If you set the frame option in the debugger, it'll tell you when you enter a subroutine:
PERLDB_OPTS="frame=1" perl -d myprogram.pl
If you just want a trace (and don't need to debug interactively), you can use the NonStop option:
 PERLDB_OPTS="NonStop frame=1" perl -d myprogram

The output with NonStop on (with interspersed program output) looks like this:

Package pathdiff.pl. entering Algorithm::Diff::traverse_sequences entering Algorithm::Diff::_longestCommonSubsequence entering CODE(0x80fdd48) entering CODE(0x80fdd48) entering CODE(0x80fdd48) entering Algorithm::Diff::_withPositionsOfInInterval entering CODE(0x80fdcb8) entering CODE(0x80fdcb8) entering main::match same: a a entering main::discA omitA: b entering main::discB omitB: c

Updated: added output sample