Я все еще пытаюсь освоить функции ООП в Perl. Я чего-то не понимаю, если у меня вызов подпрограммы, такой как:
My::Package::sub_name($param1,$param2)
будет ли отправлено «My :: Package» в качестве первого параметра? Я бы сказал, что нет, но я не уверен.
(как говорит Манни) Это оператор -> , который переводит инвоканта в @_ (где инвокант является либо благословенным объектом, либо голым именем класса). :: в имени функции используется только для устранения неоднозначности пространства имен и не изменяется @_.
->
@_
::
Опубликовано как ответ на предложение Гео, хотя я не хочу быть представителем блудницы:)
Это больше описано в документации: perldoc perlboot , perldoc perltoot .
Почему бы тебе просто не попробовать?
Оповещение о спойлере:
Нет, первый параметр не будет именем пакета.
Однако, когда вы делаете:
My::Package->sub_name( $param1, $param2 )
вы получите имя пакета / класса в качестве первого параметра.