您好我想更好地了解Perl。我来自Ruby并试图将我的头部包裹在Perl周围以获得乐趣。我们说这里有这个代码块。
$self->doSomething(
{ record => $record,
listing => [ $foo, $bar, $baz ],
passedargs => { something => $val, another => $val2 },
}
);
究竟定义为$args
的是什么?我阅读Perl文档时的思考过程类似于my ($self, $args) = @_;
意味着doSomething
块中的所有内容都被视为$args
,如果我想访问它。我会my $args = @_[0];
只是好奇我是否正确地思考这个问题?如果不在乎解释?
答案 0 :(得分:3)
由于您正在调用doSomething
作为方法调用,因此第一个参数将是您调用方法的对象(即位于箭头运算符左侧的对象:$self
)。
第二个参数将是您在(
和)
之间传递的hashref。
您可以像访问任何其他hashref一样访问hashref的特定成员。
sub doSomething {
my ($self, $args) = @_;
my $record = $args->{record};