Подпрограммы
Описать и использовать подпрограмму можно несколькими способами:
Вызвать подпрограмму можно тоже несколькими способами:
- &NAME(LIST) - скобки обязательны для & формы.
- NAME(LIST) - & не обязательно со скобками.
- NAME LIST - скобки можно опустить в случае предварительного описания
или включения подпрограммы из модуля.
Аргументы передаются подпрограмме в виде локального массива @_, его элементы
являются ссылками на реальные скалярные параметры. Подпрограмма возвращает
значение, полученное в результате исполнения последнего оператора подпрограммы.
Как уже говорилось, подпрограмма вызывается использованием префикса & перед
ее именем, в Perl 5 этот префикс не обязателен. Пример:
sub MAX {
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);
Содержание раздела