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