パッケージ(オブジェクト)を調べる

パッケージにある全てのメソッドを調べる

シンボルテーブルをダンプする。

 use DateTime;
 use Data::Dumper;
 print Dumper \%Data::Dumper::;

オブジェクトにメソッドがあるか調べる

 use DateTime;
 use UNIVERSAL qw/can/;
 $dt = DateTime->now;
 if (can($dt, 'year')) {
    print "dt has 'year()'\n"
 }

オブジェクトがパッケージを継承しているか調べる

 use DateTime;
 use UNIVERSAL qw/isa/;
 $dt = DateTime->now;
 if (isa($dt, 'DateTime')) {
    print "dt isa 'DateTime'\n"
 }

オブジェクトのメソッドがどのパッケージにあるのか調べる

 use DateTime;
 use UNIVERSAL::which;
 $dt = DateTime->now;
 print $dt->which('year') . "\n";
 print $dt->which('which') . "\n";

継承しているクラスを調べる

パッケージ変数@ISAをダンプする。

 use Foo::Bar;
 use Data::Dumper;
 print Dumper @{Foo::Bar::ISA};

インスタンスから@ISAを参照する。

 my $bar = Foo::Bar->new;
 no strict 'refs';
 print Dumper @{ ref($bar) . "::ISA" };

Class::Inspector

http://search.cpan.org/dist/Class-Inspector/


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2011-07-05 (火) 06:54:45