I'm not saying it's necessarily the best idea in the world, but you can in fact find that information (maybe) like this:
I'm not really sure it would be the best idea either. I mean: I don't know Win32::OLE::Const but I suppose it should have a means to list the constants it created. Whatever...
print "", Dumper($symbol_table), "\n";
One "problem" (hey, notice the quotes!) with this is that it will potentially report also entries which do not correspond to subs. Thus I would filter them out:
my %subs = %{__PACKAGE__ . '::'};
*{$_}{CODE} or delete $subs{$_} for keys %subs;
I'm surprised it isn't documented in the module Win32::OLE actually. I'm not at all familiar with these packages (linux fan), but does Win32::OLE::Const help somehow?
As hinted above, I second that. However if one, like the OP, wants to know which "constants" a certain module created, then it would sensible to only find the subs which were added upon its use, perhaps like thus:
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__
|