in reply to Traversing variables in a namespace

Take a look at Devel::Symdump.

Example code:

my $sym = Devel::Symdump->new('Foo'); my @scalars = $sym->scalars; for my $s (@scalars) { # do something }
Or you could roll your own:
my $class = 'Foo'; while (my($key, $val) = each %{"${class}::"}) { local(*ENTRY) = $val; # $key is the name of the symbol table entry, # and *ENTRY is the value--the glob. You can, # for example, look at *ENTRY{CODE} to see # if there's a sub called $key. }