Аргументы.
Аргументы вызова функции передаются через пременную @_
sub say_hello_to { print "Hello, $_[0]!\n"; } say_hello_to("world"); sub say { print "$_[0], $_[1]!\n"; } say_hello_to("hello", "world");
Пременная @_ является локальной для подпрограммы. Если для @_
устанавливается глобальное значение, то оно затеняется на время выполнения подпрограммы.
sub add { $sum = 0; foreach $_ (@_) { $sum += $_; }
return $sum; } $a = add(4, 5, 6); print add(1..5);