@_ Массив, содержащий аргументы подпрограммы
sub имя {операторы;} Определение подпрограммы
sub имя; Объявление подпрограммы
sub имя (список-типов) ; Объявление прототипа подпрограммы
имя-функции; Вызов функции
имя-функции (аргументы) ; Вызов функции
&имя-функции аргументы ; Вызов функции
my (список-объектов) Локальные переменные, определенные в данной подпрограмме или блоке
local (список-объектов) Локальная версия глобального объекта, известная текущей подпрограмме и блоку, а также остальным вызванным подпрограммам
\@ имя-массива Ссылка на массив (используется в списке аргументов для под-
держания целостности массива)
При работе с Perl 5 существует несколько способов вызова подпрограмм. Обычно для вызова подпрограммы указывают ее имя, предваренное символом &. Например, запись Sdispfile служит для вызова подпрограммы dispfile. Вместо символа S, можно применять круглые скобки. Если подпрограмма объявлена, для ее вызова достаточно указания имени. Ниже представлены различные способы вызова подпрограммы:
dispfile;
$dispflie;
dispfile ();
Подпрограммы могут принимать аргументы и возвращать значения в вызывающую программу. Аргументы и возвращаемые значения передаются как списки. Аргументы, указанные в вызове подпрограммы, становятся элементами массива @_, который затем передается в подпрограмму. Для обращения к конкретному аргументу используются те же операции, что и для обработки массивов и списков. Массив @_ применяется во всех подпрограммах для доступа к их аргументам.
Обращение к аргументам в массиве @_ происходит так же, как и к элементам любого массива. Первый аргумент обозначается как $_[0], второй — как $_[!] и т. д. В следующем примере подпрограмма dispfilearg получает в качестве аргумента имя файла. Используя элемент $_ [ 0 ], она выводит имя файла.