Для применения подпрограммы ее необходимо определить либо в текущем модуле (файле), либо во внешнем модуле (файле). Подпрограммы определяются и декларируются следующим образом:

  • sub имя; - Только декларация. Определение ниже.
  • sub имя (прототипы); - То же но с декларацией параметров.
  • sub имя блок; - Декларация и определение.
  • sub имя (прототипы) блок; - То же, но с параметрами.
Для определения динамической анонимной подпрограммы можно указать:
  • $переменная = sub блок;
Для импортирования подпрограмм из других модулей используйте:
  • use модуль qw(подпрограмма1 подпрограмма2 );
Вызов подпрограммы:
имя(список параметров);# символ '&' можно 
                              не указывать.
имя список;            # Если подпрограмма уже 
                               декларирована.
 &имя;                  # Параметры в @_

Все параметры передаются подпрограмме как массив @_. Соответственно $_[0] - первый параметр, $_[1] - второй и т.д. Массив @_ - локальный, но он содержит адреса параметров, поэтому можно изменять значение параметров. Возвращаемое значение подпрограммы - результат последнего оператора. Это может быть как скаляр так и массив. Можно принудительно возвращать результат используя функцию return().

Подпрограмму можно вызвать, используя префикс '&' перед именем подпрограммы. Если подпрограмма предварительно продекларирована, то префикс и скобки можно опустить.