パッケージ(オブジェクト)を調べるパッケージにある全てのメソッドを調べるシンボルテーブルをダンプする。 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 |
|