Raw content of Bio::EnsEMBL::Analysis::Tools::Stashes package Bio::EnsEMBL::Analysis::Tools::Stashes; use Bio::EnsEMBL::Utils::Exception qw(verbose throw warning); use Exporter ; use vars qw (@ISA @EXPORT); @ISA = qw(Exporter); @EXPORT = qw( package_stash ); sub package_stash { my ($packageName) = @_; my %result ; local (*alias); *stash = *{"${packageName}::"}; while (($varName, $globValue) = each %stash) { # only return the config hash next if $varName =~m/BEGIN/; next if $varName =~m/import/; *alias = $globValue; $result{$varName}=$alias if (defined ($alias)) ; $result{$varName}=\@alias if (defined (@alias)) ; $result{$varName}=\%alias if (defined (%alias)) ; } if (scalar(keys %result >1) ) { throw("Have more than one item exported from $packageName - you'll run into trouble\n") } my $hash_name = shift @{[(keys %result)]}; return [$result{$hash_name},$hash_name] ; } 1;