我有一个类,它有一个新方法并使用该对象调用方法 X。当我从对象调用 X 时,参数的第一个值是 $self,其余是我发送的值。现在当我从对象的另一个方法调用相同的方法,第一个值不再是 $self,它只是发送的值。我该如何解决这种情况?
示例:
my $p = TEST->new;
$p->mymethod(1,2,3); # @_ = 'self, 1, 2, 3'
但是如果在'mymethod'中被另一个方法调用:
sub anothermethod{
my ($self, $a) = @_;
mymethod(1,2,3); # @_ = '1,2,3'
}
如何编写“mymethod”以便它处理这两种情况?还是我从根本上做错了什么?
最佳答案
就像你这样做一样:
$p->mymethod(1,2,3);
您需要明确说明调用方法的对象(即使是在类中):
$self->mymethod(1,2,3);
关于perl - 在 Perl 中,如何确保从同一对象的方法中调用 sub 作为方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7728417/