我想知道这个子例程在 Perl 中做了什么。我相信我有大致的想法,但我想知道一些语法。
sub _init
{
my $self = shift;
if (@_) {
my %extra = @_;
@$self{keys %extra} = values %extra;
}
}
这就是我认为它的作用:本质上将任何“额外”键值对添加到变量 $self 引用的无名哈希中。我也不是 100% 确定这一点,但我认为my $self = shift
实际上是指$self
调用_init()
子例程的变量。
我的具体问题是:
- $self 实际上是指调用子程序的变量
_init()
吗? @$
写的时候语法是什么意思@$self{keys %extra} = values %extra;