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};