Hen*_*ton 3 oop perl method-call
我想知道是否可以在不传递self参数的情况下从对象调用方法.
举个例子,我有一个包:
package MyPackage;
sub new {
my $class = shift;
return bless {}, $class;
}
sub test {
print("called(" . join(', ', @_) . ")\n");
}
Run Code Online (Sandbox Code Playgroud)
从脚本中,我调用构造函数,然后调用test
方法:
my $obj = MyPackage->new();
$obj->test("str");
Run Code Online (Sandbox Code Playgroud)
给我以下输出:
called(MyPackage=HASH(0x55b05d481f48), str)
Run Code Online (Sandbox Code Playgroud)
是否有任何方法(即使它不是最佳实践或使用该语言的某些"神秘"功能)test
仅使用引用调用该方法
$obj
而不隐式传递"self"参数.
总之,是否有可能做到这样的事情:
$objXXXXtest("str");
Run Code Online (Sandbox Code Playgroud)
用XXXX
假设的结构得到called(str)
输出?
它有点非正统,但会UNIVERSAL::can
返回一个代码引用,您可以在没有引用的情况下调用它.
$obj->can("test")->("str");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
164 次 |
最近记录: |