Язык программирования Perl



              

Поля отчета - часть 2


Полный список символов, применяемых для описания полей и форматов, приводится в таблице 10.2.

Таблица 10.2. Символы, применяемые при описании полей и форматов

СимволОписаниеПримеры использования
@начало обычного поля@ @<< @||| @>> @##
^начало специального поля^ ^<< ^||| ^>> ^##
<текстовое поле с выравниванием значения влево и добавлением пробелов справа@<<<<< ^<<<
|текстовое поле с центрированием значения и добавлением пробелов с обеих сторон@||||| ^|||
>текстовое поле с выравниванием значения вправо и добавлением пробелов слева@>>>>> ^>>>
#числовое поле с выравниванием значения вправо с добавлением пробелов слева@#### ^###
0(вместо первого #) числовое поле с выравниванием значения вправо и добавлением нулей слева@0### ^0##
.десятичная точка в числовом поле@.### @0##.##
...закончить текстовое поле многоточием, чтобы показать усечение значения@<<<<<...
@*поле переменной ширины со значением, состоящим из нескольких строк@*
^*поле переменной ширины для следующих строк многострочного значения^*
~подавление вывода строки с пустыми значениями полей^* ~
~~повторять строку, пока все значения полей не станут пустыми~~ ^*
{}группировка списка значений, который располагается на нескольких строках аргументов{$one, $two, $three }
#(первым символом в строке) строка комментария в описании формата (не может располагаться между строкой шаблонов и строкой аргументов)# это комментарий
.(единственным символом на отдельной строке) конец форматаformat REPORT = описание формата .

То, как применяются поледержатели при описании формата, можно увидеть из следующего примера:

format STDOUT = Учетная карточка пользователя N @0### $number --------------------------------------------------------- Фамилия @<<<<<<<<<<<<<< | Login @<<<<<<< $last_name, $login Имя @<<<<<<<<<<< | Группа @<<<<<<<<<<<<<<<<< $first_name, $group Отчество @<<<<<<<<<<<<<<<<<< | $middle_name E-mail @<<<<<<<<<<<<<<<<<< | Телефон @>>>>>>>>> $email, $phone Ограничение дискового пространства @####.## Мегабайт $quota --------------------------------------------------------- Дата регистрации @# @<<<<<<<<< @### года {$day, $month_name,$year} .

Из примера понятно, что формат отчета записывается в виде, максимально похожем на представление страницы отчета на экране или на бумаге. Каждому полю в строке шаблонов должно соответствовать скалярное значение в строке аргументов. Имена переменных в строке аргументов для наглядности часто располагаются под соответствующими поледержателями в предыдущей строке шаблонов, хотя это совсем не обязательно. Список переменных может находиться на нескольких строках аргументов (как это сделано в описании последней строки формата); в этом случае он должен заключаться в фигурные скобки. Имейте в виду, что скалярные переменные и массивы в строке аргументов разворачиваются в единый список скаляров, из которого по порядку берутся значения для заполнения полей.




Содержание  Назад  Вперед