Поскольку вы понимаете концепцию @_
, вы поймете, что можете просто получить к ним доступ, используя shift
или $_[0]
по мере необходимости.Причиной наличия этих строк является скорее лучшая практика.Поскольку в Perl нет формальных параметров, мы обычно присваиваем им именованные переменные в начале подпрограммы, прежде чем делать что-либо еще.Таким образом, код ясно показывает, что ожидает подпрограмма и каков каждый параметр.(Причиной, по которой вы можете не делать этого, является эффективность кода, но обычно сначала следует выбрать ясность кода.)
Обратите внимание на круглые скобки вокруг переменных.Это делается для назначения массива @_
списку, содержащему ($self, $firstname)
.Если у вас нет скобок, он не будет работать, потому что он пытается назначить массив нескольким скалярам.Обратите внимание, что если @_
содержит больше параметров, они будут игнорироваться.
Список объявляется с использованием my
.Это означает, что эти скаляры будут существовать только внутри этой подпрограммы.Это для безопасности, так что если вы используете скаляр с тем же именем где-то еще, вы не получите конфликта с неожиданными результатами.Обратите внимание, что вам нужно иметь строку с use strict
в верхней части вашего файла для применения my
.
$self
используется для объектно-ориентированного Perl.Это всегда будет первым параметром метода.Таким образом, при вызове типа $obj->firstname($foo)
, $obj
будет назначен на $self
внутри вашего метода, а $foo
будет назначен на $firstname
.