Perl获取每个对象的函数

cer*_*wny 4 perl

我是Perl的新手,所以我不知道它是否可行.我有兴趣创建一个可以捕获所有调用的模块.

它的用法如下:

$object = new Foo;
$object->blah;
Run Code Online (Sandbox Code Playgroud)

函数名称(所以在这种情况下"blah"会被Foo咳嗽并作为字符串返回到屏幕).

我不知道怎么做的是将被调用的函数名称作为字符串.

Сух*_*й27 5

您可能想要检查AUTOLOADING

如果你调用一个未定义的子程序,你通常会立即得到一个致命的错误,抱怨该子程序不存在.(同样,对于用作方法的子例程,当该类的包的任何基类中不存在该方法时.)但是,如果在用于定位原始子例程的包或包中定义了AUTOLOAD子例程,则该AUTOLOAD子例程使用将传递给原始子例程的参数调用

my $object = new Foo;
print $object->blah, "\n";

package Foo;
sub new { return bless {}, shift }

# catch-all function
sub AUTOLOAD {
  return $AUTOLOAD;

}
Run Code Online (Sandbox Code Playgroud)

输出 Foo::blah