В Perl все аргументы функции передаются в виде списков и сохраняются в специальной переменной массива @_
. Вы можете скопировать эти значения в какой-то другой массив или напрямую в хеш (как вы можете с любым массивом / списком).
Если вы пишете функцию, вы можете передать аргументы непосредственно в массив или хеш:
sub hashFunc {
my %args = @_;
....
}
sub arrayFunc {
my @args = @_;
...
}
Чтобы вызвать такую функцию, просто передайте их, как если бы они были списком или хешем:
hashFunc(arg1 => 'someVal', arg2 => 'someOtherVal');
arrayFunc('someVal', 'someOtherVal');
Если у вас уже есть аргументы в переменной, просто передайте их, и Perl сгладит массив / хэш в список аргументов:
hashFunc(%someHash);
arrayFunc(@someArray);