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