Как получить несколько аргументов в функциях Perl?

В своем коде я использовал довольно примитивный метод извлечения параметров из вызова функции следующим образом:

sub addSix ($$$$$$) {
    my ($a, $b, $c, $d, $e, $f) = (shift, shift, shift, shift, shift, shift);
    return $a + $b + $c + $d + $e + $f;
}

print addSix (1, 2, 3, 4, 5, 6) . "\n";

(забудьте о примитивном коде, главное - множественные вызовы shift).

Теперь это кажется мне довольно запутанным, и я подумал, что Perl может иметь что-то вроде:

my ($a, $b, $c, $d, $e, $f) = shift (6);

или что-то подобное.

Но я не могу найти ничего подобного. Я знаю, что могу использовать для этого массивы, но, думаю, мне все равно придется распаковывать массив на отдельные скаляры. Это было бы не так уж плохо для приведенного выше примера, где шесть параметров похожи, но меня больше интересует случай, когда они не совсем подходят в качестве массива.

Как можно извлекать параметры без того, чтобы в итоге не получить массу сдвиговых ключевых слов?

14
задан paxdiablo 18 October 2013 в 18:51
поделиться