[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