my $symbol_table = *{"main::Example::Package::"}{HASH};
####
my $symbol_table = \%Example::Package::;
####
my $symbol_table = \%{__PACKAGE__ . '::'};
####
print "", Dumper($symbol_table), "\n";
####
my %subs = %{__PACKAGE__ . '::'};
*{$_}{CODE} or delete $subs{$_} for keys %subs;
####
my %subs = map { $_ => *{$_}{CODE} } grep *{$_}{CODE},
keys %{__PACKAGE__ . '::'};
####
my %subs;
while ( my ($k,$v)=each %{__PACKAGE__ . '::'} ) {
$subs{$k}=$v if *{$v}{CODE};
}
####
my @subs = grep *{$_}{CODE}, keys %{__PACKAGE__ . '::'};
####
package Example::Package;
use strict;
use warnings;
use Data::Dumper;
use constant foo => 1;
BEGIN {
no strict 'refs';
my %subs = map {$_ => 1} grep *{$_}{CODE},
keys %{__PACKAGE__ . '::'};
sub added_subs () {
grep *{$_}{CODE} && !$subs{$_},
keys %{__PACKAGE__ . '::'};
}
}
use constant { bar => 2, baz => 3 };
print Dumper [added_subs];
__END__