FindImportedSymbols


Find which symbols come from which modules:

 

 

#!/usr/local/bin/perl

use strict;
use Data::Dumper;
use Symbol qw/ gensym qualify delete_package /;

for my $module (
  'Data::Dumper',
  'Symbol',
) {
  print "found $_ in main from $modulen"
    for find_exported_symbols( 'main', $module );
}

sub find_exported_symbols {
  my($in, $from) = @_;
  no strict 'refs';
  my($in_tbl, $from_tbl) = ( %{"$in::"}, %{"$from::"} );

  return grep {
    my $sym = $_;
    grep { *$sym == *$_ } keys %$from_tbl;
  } keys %$in_tbl;
}

 

-Attribution