小编Hen*_*ton的帖子

在Perl中调用没有self参数的方法

我想知道是否可以在不传递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)输出?

oop perl method-call

3
推荐指数
1
解决办法
164
查看次数

标签 统计

method-call ×1

oop ×1

perl ×1