П2.4.5.1 Подпрограммы
Описать и использовать подпрограмму можно несколькими способами:
- sub NAME; - подразумевает описание в дальнейшем тела подпрограммы.
- sub NAME BLOCK - непосредственное описание.
- $subref = sub BLOCK - анонимное описание.
- use PACKAGE qw(NAME1, NAME2, NAME3) - включение подпрограмм из модулей.
- &NAME(LIST) - скобки обязательны для & формы.
- NAME(LIST) - & не обязательно со скобками.
- NAME LIST - скобки можно опустить в случае предварительного описания или включения подпрограммы из модуля.
my $max = pop(@_);
foreach $foo (@_) {
$max = $foo if $max < $foo;
}
$max;
}
...
$bestmark = &MAX(1,2,3,4,5);Подпрограмма может вызываться рекурсивно. Если подпрограмма вызывается с использованием & формы, то список аргументов необязателен. Если вы хотите создать внутри модуля его собственную, невидимую снаружи подпрограмму, то описание должно быть анонимным: my $subref = sub {...}
&$subref(1,2,3);