Мне очень трудно понять пересечение OO Perl и my $self = shift;
Документация по этим отдельным элементам велика, но ни один из них, который я нашел, не касался того, как они работают вместе.
Я использую Moose для создания модулей с атрибутами, и, конечно, полезно ссылаться на атрибут модуля в указанном модуле. Мне снова и снова говорили использовать my $self = shift;
в рамках подпрограммы, чтобы назначать атрибуты модуля этой переменной. Это имеет смысл и работает, но когда я также передаю аргументы подпрограмме, этот процесс явно берет первый элемент массива @ARGV
и назначает его также $self
.
Может кто-нибудь предложить объяснение того, как я могу использовать shift, чтобы получить внутренний доступ к атрибутам модуля, а также передать аргументы в массиве @ARGV
?