[perl] シンボルテーブル
パッケージの内容にまとめてアクセスするにはシンボルテーブルにアクセスする。
for my $key ( keys %main:: ) { print $key."\t".$main::{$key}."\n"; }
こんな感じの結果を得る。
CORE:: *main::CORE:: DynaLoader:: *main::DynaLoader:: stdout *main::stdout attributes:: *main::attributes::
ちなみに、Class::Inscpectorでこんな感じに使われている。
foreach ( keys %{"${name}::"} ) { next if substr($_, -2, 2) eq '::'; return 1 if defined &{"${name}::$_"}; }
http://search.cpan.org/src/ADAMK/Class-Inspector-1.16/lib/Class/Inspector.pm