我有一个有一个新方法的类,并使用该对象调用方法X.当我从对象调用X时,参数的第一个值是$ self,其余的是我发送的值.现在当我调用它时来自对象的另一个方法的方法,第一个值不再是$ self,而只是发送的值.如何解决这种情况?
样品:
my $p = TEST->new;
$p->mymethod(1,2,3); # @_ = 'self, 1, 2, 3'
Run Code Online (Sandbox Code Playgroud)
但如果'mymethod'被另一种方法调用:
sub anothermethod{
my ($self, $a) = @_;
mymethod(1,2,3); # @_ = '1,2,3'
}
Run Code Online (Sandbox Code Playgroud)
如何编写'mymethod'以便处理这两种情况?或者我从根本上做错了什么?
就像你这样做:
$p->mymethod(1,2,3);
Run Code Online (Sandbox Code Playgroud)
你需要明确你正在调用方法的对象(甚至在类中):
$self->mymethod(1,2,3);
Run Code Online (Sandbox Code Playgroud)