綾小路龍之介の素人思考

[perl] オブジェクトにメソッドがあるかチェックするにはcan

newで作ったオブジェクトに使えるメソッドはpodを見ればいいとして、何かの戻り値で帰ってきたオブジェクトに使えるメソッドは何か。そもそも帰ってきたオブジェクトの種類は何か?

よくやるのはこれ。$objにfugaメソッドが使えるかチェックして、使えなければ負値を返す、使えれば使った結果を返す。

if (&test($obj) < 0) {
        print "ERROR:";
}

sub test
{
        my $obj = shift;
        return -1 if !$obj->can('fuga');
        return $obj->fuga;
}

リファレンス

  1. perl can - Google 検索
  2. can は coderef を返す - Perlにまつわる小ネタ集 - モダンなPerl入門

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2009-08-07T02:58:39+09:00
  2. Modified: 2009-08-07T02:58:39+09:00
  3. Generated: 2017-10-06T23:09:17+09:00