Возможный дубликат: Как передать один массив и одну строку в качестве аргументов функции?
У меня есть функция или подпрограмма, которая принимает первый параметр в виде массива, а второй параметр — в виде скаляра. Например,
sub calc { my @array = $_[0]; my $scalar = $_[1]; print @array, $scalar; }
Проблема в том, что функция делает массив равным первому значению переданного массива, а скаляр — второму значению переданного массива. Когда я хочу, чтобы первый массив был весь массив, мне не нужно делать глубокую копию массива. Например,
my @array = ('51', 'M'); my $scalar = 21;
и
calc(@array, $scalar)
будут печатать
51 M
, когда я хочу51 M 21
.