Reading the source should be enough, if you're using use strict. The my directive states that the variable being declared is visible only to that block, so a variable declared within a subroutine, while it can have the same name is visible only to that block of code/function/if statement/while statement.
There may be utilities to dump the namespace of a program, or the debugger may be able to do this, but given that the code is interpreted it's unlikely, but I'm ready to learn to the contrary as they say ;-)
Paul
------------------------------------
Spend an hour a week on CPAN, helps cure all known programming ailments ;-)