function - Perl - 调用类的实例

标签 function perl class call instance

有没有办法捕获调用 Perl 类实例的事件?

my $obj = ExampleClass->new();
$obj(); # do something without producing error

我希望能够在类/模块定义中处理这个问题。类似于Python中的__call__方法,或者Lua中的__call元方法。

最佳答案

我仍然不确定用例是什么,但您可以重载该类来处理代码取消引用。

package ExampleClass;
use overload '&{}' => \&__call__;   # Or an anon sub.
sub new {
   bless {@_}, shift;
}
sub __call__ {
    sub { warn "calling an instance event" };
}

package main;
my $obj = ExampleClass->new;
$obj->();
&$obj();      # same as $obj->()

典型输出:

$ perl 44956235.pl
calling an instance event at 44956235.pl line 7.
calling an instance event at 44956235.pl line 7.

关于function - Perl - 调用类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44956235/

相关文章:

jquery - 如何正确运行我自己的 jQuery 函数?

function - 在Scheme中组合两个函数

Perl:如何从严格的 perl 文件使用其他 pl 文件中定义的常量?

perl - 使用 Test::Mojo 测试 URL 生成

javascript - TypeScript - 自定义类元素的 Array.map

c# - 从内部类引发事件以在外部类处理,怎么做?

PHP - 对象实例化上下文 - 奇怪的行为 - 是 PHP 错误吗?

ios - UIAlertController 按钮功能不起作用

c++ - 是否可以使函数对常量参数或变量参数表现不同?

php - 如何在 Plesk 中将 PHP 或 Perl 每天访问 URL 作为计划任务?