有没有办法捕获调用Perl类的实例的事件?
my $obj = ExampleClass->new(); $obj(); # do something without producing error
解决方法
我仍然不确定用例是什么,但你可以重载类来处理代码解除引用.
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.