我是OOPerl的新手,想知道如何在该类中引用一个类的实例(即$this
在PHP中),以便能够调用其“私有”方法
为了更清楚一点:
例如在PHP中:
class Foo {
public function __construct(){
}
public function doThis(){
$that = $this->doThat(); //How to reference a "private" function in perl that is defined in the same class as the calling function?
return $that;
}
private function doThat(){
return "Hi";
}
}
Perl方法是普通的子例程,它们期望其参数数组的第一个元素是@_
在其上调用该方法的对象。
定义为的对象
my $object = Class->new
然后可以用来调用方法,像这样
$object->method('p1', 'p2')
习惯名称是$self
,并且在方法中将其分配为普通变量,如下所示
sub method {
my $self = shift;
my ($p1, $p2) = @_;
# Do stuff with $self according to $p1 and $p2
}
因为shift
从中删除了对象@_
,所以剩下的全部就是方法调用的显式参数,这些参数被复制到局部参数变量中。
有许多方法可以使Perl中的私有方法无法访问,但是绝大多数代码只是相信调用代码可以做正确的事情。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句