in reply to caller counter

Other Monks have noted that this is possible with caller alone, but you might also want to check Devel::StackTrace. This will also allow you to see what arguments were passed (which you can pass to Data::Dumper for printing).

----
I wanted to explore how Perl's closures can be manipulated, and ended up creating an object system by accident.
-- Schemer

: () { :|:& };:

Note: All code is untested, unless otherwise stated