Perl获取每个对象的函数

时间:2014-07-03 09:00:19

标签: perl

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

它的用法如下:

$object = new Foo;
$object->blah;

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

我不知道如何做的是将被调用的函数名称作为字符串。

1 个答案:

答案 0 :(得分: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;

}

输出Foo::blah