format STDOUT =
Учетная карточка пользователя N @0###
$number
---------------------------------------------------------
Фамилия @<<<<<<<<<<<<<< | Login @<<<<<<<
$last_name, $login
Имя @<<<<<<<<<<< | Группа @<<<<<<<<<<<<<<<<<
$first_name, $group
Отчество @<<<<<<<<<<<<<<<<<< |
$middle_name
E-mail @<<<<<<<<<<<<<<<<<< | Телефон @>>>>>>>>>
$email, $phone
Ограничение дискового пространства @####.## Мегабайт
$quota
---------------------------------------------------------
Дата регистрации @# @<<<<<<<<< @### года
{$day,
$month_name,$year}
.
Из примера понятно, что формат отчета записывается в виде, максимально похожем на представление страницы отчета на экране или на бумаге. Каждому полю в строке шаблонов должно соответствовать скалярное значение в строке аргументов. Имена переменных в строке аргументов для наглядности часто располагаются под соответствующими поледержателями в предыдущей строке шаблонов, хотя это совсем не обязательно. Список переменных может находиться на нескольких строках аргументов (как это сделано в описании последней строки формата); в этом случае он должен заключаться в фигурные скобки. Имейте в виду, что скалярные переменные и массивы в строке аргументов разворачиваются в единый список скаляров, из которого по порядку берутся значения для заполнения полей.
Для форматированного вывода отчетов применяется функция
Если для выходного потока описан формат начала страницы отчета, то перед выводом строк отчета функцией
# данные в записи входного файла разделены запятыми
open my $in, '<', 'users.txt' or die;
while (my $line = <$in>) {
local ($last_name, $first_name, $middle_name,
$login, $group, $email, $phone, $quota, $number,
$day, $month_name, $year) = split ',', $line;
# данные для отчета помещены в переменные
write STDOUT; # данные выводятся в STDOUT по формату
}
close $in or die;
# здесь располагается описание формата...
В результате выполнения этой программы в поток STDOUT будет выведен отчет, состоящий вот из таких карточек:
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии