in reply to print package's symble table
Using a reference:
$ perl -MData::Dumper -e' sub Foo::Bar::baz {} print(Dumper(\%Foo::Bar::)) ' $VAR1 = { 'baz' => *Foo::Bar::baz };
Using a symbolic reference:
$ perl -MData::Dumper -e' sub Foo::Bar::baz {} print(Dumper(\%{"Foo::Bar::"})); ' $VAR1 = { 'baz' => *Foo::Bar::baz };
Neither hardcoded nor a symbolic reference:
$ perl -MData::Dumper -e' sub Foo::Bar::baz {} print(Dumper(\%{ $::{"Foo::"}{"Bar::"} })); ' $VAR1 = { 'baz' => *Foo::Bar::baz };
So, you can do
no strict 'refs'; \%{ $package . '::' };
or you can do
my $r = \%::; $r = $r->{$_ . '::'} for split /::/, $package; \%$r
|
|---|