2 に答える
10
Devel::Callerが役立つかどうかを確認してください。func
オブジェクトで呼び出すようにコードを変更したところ、 perl
5.14.3 (および 5.24.0)の Mac で動作するようです。
called_as_method($level)
called_as_method returns
サブルーチン at$level
がメソッドとして呼び出された場合は true。
#!/usr/bin/env perl
package Ad::Hoc;
use strict; use warnings;
use Devel::Caller qw( called_as_method );
sub func {
printf "%s\n", called_as_method(0) ? 'method' : 'function';
return;
}
package main;
use strict; use warnings;
Ad::Hoc->func;
Ad::Hoc::func();
出力:
方法 関数
于 2013-08-13T20:30:14.623 に答える