Книги-online
Введение в Perl. Подпрограммы.
Подпрограммы.
Для применения подпрограммы ее
необходимо определить либо в
текущем модуле (файле), либо во
внешнем модуле (файле).
Подпрограммы определяются и
декларируются следующим образом:
- sub имя; - Только декларация.
Определение ниже.
- sub имя (прототипы); - То же но
с декларацией параметров.
- sub имя блок; - Декларация и
определение.
- sub имя (прототипы) блок; - То
же, но с параметрами.
Для определения динамической
анонимной подпрограммы можно
указать:
Для импортирования подпрограмм
из других модулей используйте:
- use модуль qw(подпрограмма1
подпрограмма2 );
Вызов подпрограммы:
имя(список параметров); # символ '&' можно не указывать.
имя список; # Если подпрограмма уже декларирована.
&имя; # Параметры в @_
Все параметры передаются
подпрограмме как массив @_.
Соответственно $_[0] - первый
параметр, $_[1] - второй и т.д. Массив @_
- локальный, но он содержит адреса
параметров, поэтому можно изменять
значение параметров. Возвращаемое
значение подпрограммы - результат
последнего оператора. Это может
быть как скаляр так и массив. Можно
принудительно возвращать
результат используя функцию return().
Подпрограмму можно вызвать,
используя префикс '&' перед именем
подпрограммы. Если подпрограмма
предварительно продекларирована,
то префикс и скобки можно опустить.
Private переменные.
Для применения переменных
доступных только внутри блока или
подпрограммы необходимо
определить их с помощью функции
my(список).
Если переменная одна, то скобки
можно опустить.
my() декларирует private переменные в
пределах текущей подпрограммы,
блока, функции eval() или do/require/use
файлов. Private переменные аналогичны
auto переменным в С.
Пример:
# Программа вычисления факториала.
print fact(3); # вычислить факториал 3*2*1
sub fact # Определяем подпрограмму.
{ my $m; # private переменная но не local !
$m = $_[0];
return 1 if $m