Иллюстрированный самоучитель по Perl



         

Объявление формата - часть 3


Переменные, определяющие значения для полей строки шаблонов, задаются через запятую в строке переменных. Порядок их задания соответствует порядку задания полей вывода в строке шаблонов: значение первой переменной выводится в первое поле, второй — во второе и т. д. Все переменные в строке переменных вычисляются в списковом контексте. Это позволяет задавать выводимые значения в элементах массива скаляров.

Замечание

Если строка шаблонов не содержит полей, то для нее не надо задавать строку переменных. Она отображается в точности так, как она задана в формате.

Таблица 8.1. Символы форматирования

Символ

Описание

>

Определяет символьное поле, в котором выводимое значение выровнено по правому краю

<

Определяет символьное поле, в котором выводимое значение выровнено по левому краю

# Определяет числовое поле (выводимое значение должно быть числом)
. Определяет положение десятичной точки в числовом поле (###.##)

I

Определяет символьное поле, в котором выводимое значение выровнено центру

Небольшой пример прольет свет на все вышесказанное — лучше один раз увидеть, чем сто раз услышать. Предположим, что у нас имеется файл (назовем его books), содержащий информацию о книгах, продаваемых неким книжным магазином. Каждая строка этого файла содержит информацию об одной книге: автор(ы), название, издательство, год выпуска и стоимость. Все поля записи разделены символом двоеточие ":". Одна из строк этого файла может выглядеть так:

В.Долженков Ю.Колесников:Excel 2000:BHV:1999:90

Нам необходимо распечатать отчет о всех продаваемых книгах. Воспользуемся форматами Perl. Программа примера 8.1 реализует поставленную задачу.

#! peri -w . "

open BOOKS, "<books"; # Открытие файла на чтение

while (<BOOKS>) {

{$author, $title, $pub, $year, $price) = split(':'); t Разбиение строки по символу ':'

write; # Форматный вывод строки

} '.....

format STDOUT =

@<«««««««««««« | е»»»»>» i @i 111111 | @#### | @###.##р.




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