Я пытаюсь передать параметры в подпрограмму perl и по какой-либо причине внутри подпрограммы параметры выходят пустым.Perl Передача аргументов в подпрограмму не работает
...
...
...
print "Passing arguments $a, $b, $c, $d \n";
beforeEnd($a, %b, $c, $d);
sub beforeEnd() {
my ($a, %b, $c, $d) = @_;
print "a is $a, b is $b, c is $c, d is $d \n";
}
Результаты печати заявлений дают мне представление о том, что что-то не так. Странная часть? Первые 2 параметра проходят правильно.
> Passing arguments 1, (1,2,3), 2, 3
> a is 1, b is (1,2,3), c is , d is
Любая помощь была бы принята с благодарностью.
Вы передаете '% b', но печатаете' $ b'. – Barmar
Переменная списка в присваивании получит все остальные аргументы функции. – Barmar
Если вы хотите передать список, не разлагая его в виде отдельных аргументов, вы должны использовать ссылку на массив. – Barmar