Вы передаете аргументы как ссылки, поэтому вам нужно разыменовать их, чтобы использовать значения. Будьте осторожны, хотите ли вы изменить исходный массив или нет.
sub mysub {
my($inVal, $inValTwo, $inArray, $inArrayTwo) = @_;
@{$inArrayTwo} = ('five','six','seven');
}
Это изменит исходный @currArrayTwo
, что может быть не тем, что вы хотите.
sub mysub {
my($inVal, $inValTwo, $inArray, $inArrayTwo) = @_;
my @ATwo = @{$inArrayTwo};
@ATwo = ('five','six','seven');
}
Это только скопирует значения и оставит исходный массив без изменений.
Кроме того, вам не нужен амперсанд перед вложенным именем, начиная с perldoc perlsub :
Если подпрограмма вызывается с помощью &
форма, список аргументов не является обязательным,
и если не указан, массив @_ не устанавливается
для подпрограммы: массив @_ в
время звонка видно
подпрограмма вместо. Это
механизм эффективности, что новые пользователи
возможно, пожелает избежать.
Тебе не нужны пустые парены после твоей декларации. Они используются для создания прототипов, что вам не нужно делать, если вы действительно этого не хотите.