in reply to Get first caller and its arguments

You may find the source for Devel::StackTrace instructive.
$ perl -MDevel::StackTrace -e ' hlagh("bar"); sub hlagh { quork("baz") } sub quork { print Devel::StackTrace->new()->as_string() } ' Trace begun at -e line 1 main::quork('baz') called at -e line 1 main::hlagh('bar') called at -e line 1