"Дмитрий Леонов. Использование Perl в интернет-технологиях" - читать интересную книгу автора

sub func{...}
$fref1 = \func;
$fref2 = sub {...}; # Ссылка на анонимную функцию

Используется эта ссылка как $fref1->(список аргументов).

Ввод-вывод
Ввод с консоли осуществляется с помощью оператора STDIN>:
$a = STDIN>; # считывает следующую строку до символа
#перевода строки
# (точнее, до значения, присвоенного переменной $/)
# либо undef, если строк больше нет

@a = STDIN>; # считывает все строки до завершения ввода (обычно -
# нажатие Ctrl-Z); каждая строчка будет завершаться
# символом перевода строки
while(STDIN>) {...} #последовательно считывает строки в
#встроенную переменную $_.

Вывод на консоль осуществляется с помощью функции print,
форматированный вывод - с помощью printf, полностью аналогичной
соответствующей функции С. Если у print не указан параметр, выводится
содержимое встроенной переменной $_.
Для ввода из файлов, перечисленных в командной строке скрипта,
используется операция >:
while(>){...}
Если в качестве параметров передано несколько имен файлов, операция >
считает их всех последовательно.
Для файлового ввода-вывода сначала необходимо связать с файлом
дескриптор. Стандартные дескрипторы STDIN, STDOUT, STDERR уже связаны со
стандартным вводом, стандартным выводом и стандартным выводом ошибок, кроме
того, существует специальный дескриптор DATA, позволяющий считать текст,
следующий после символов __END__ из файла, в котором находится сама
программа.
Для открытия дополнительных дескрипторов используется функция open:
open(FILE1, "filename"); # открывает файл для чтения
open(FILE2 ">filename"); # открывает файл для записи
open(FILE3, ">>filename"); # открывает файл для добавления
При неудачном открытии файла функция open возвращает значение "ложь",
так что правилом хорошего тона является проверка этого значения:
open (FILE, "filename") || die "cannot open file: $!";
Функция die вызывает аварийное завершение программы, переменная $!
содержит строку с описанием последней ошибки.
После завершения работы файл необходимо закрыть:
close (FILE);

Имена дескрипторов не начинаются с каких-то специальных символов, и
общепринято вводить их заглавными буквами - просто, чтобы отличить от
обычных переменных.
Далее их можно использовать в сочетании с операцией > для ввода: