Perl args并定义它

时间:2014-08-21 15:18:21

标签: perl args hashref

您好我想更好地了解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];

只是好奇我是否正确地思考这个问题?如果不在乎解释?

1 个答案:

答案 0 :(得分:3)

由于您正在调用doSomething作为方法调用,因此第一个参数将是您调用方法的对象(即位于箭头运算符左侧的对象:$self )。

第二个参数将是您在()之间传递的hashref。

您可以像访问任何其他hashref一样访问hashref的特定成员。

sub doSomething {
    my ($self, $args) = @_;
    my $record = $args->{record};