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

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

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

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 (2546d)