Perl args и определение его

Здравствуйте, я пытаюсь лучше понять Perl. Я родом из Руби и пытаюсь обернуть голову вокруг 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 ответ

Решение

Так как вы вызываете doSomething в качестве вызова метода первым аргументом будет объект, для которого вы вызываете метод (то есть тот, который находится слева от оператора стрелки: $self).

Вторым аргументом будет хеш-код, который вы передаете между ( и ),

Вы получаете доступ к определенному члену хэш-ссылки так же, как и к любому другому хеш-адресу.

sub doSomething {
    my ($self, $args) = @_;
    my $record = $args->{record};
Другие вопросы по тегам