Perl Технология программирования   Компьютерная графика Экономическая информатика   3GL   к 4GL

Введение в язык программирования Perl

Форматы

В Perl реализован удобный метод создания форматированных отчетов. С помощью оператора format вы описываете заголовки, размеры полей, указываете положение данных на листе в удобной текстовой форме. Затем выполняете команду write(файл), которая выводит отформатированные данные в указанный файл.

Оператор format имеет следующий синтаксис:

	format имя =
	FORMLIST
	.

Обратите внимание на то, что описание формата идет после строки format и заканчивается символом '.' в начале строки.

Здесь 'имя' - это имя формата, такое же как и имя указателя выходного файла. Если 'имя' отсутствует то значение по умолчанию - STDOUT.

FORMLIST - это строки формата. Они бывают трех типов:

  1. Комментарий. Строка начинается символом '#'.
  2. Описатель полей данных (picture).
  3. Строка аргументов используемых описателем.

Описатель - это строка, которая выводится в виде "как есть" за исключением специально обозначенных форматов полей данных. Каждое поле начинается либо символом '@', либо '^'. В описательной строке указывается только положение и вид выводимых данных, но не имена полей и переменных. Для этого предназначена следующая строка аргументов которая следует всегда после описателя и содержит имена переменных или целые выражения в порядке указанном описателем.

Размер и вид поля в описателе обозначается следующими символами:

"<<<<" - выравнить значение по правому краю.
">>>>" - -//- по левому.
"||||" - -//- по центру.
"####.###" - формат числа с точкой.
"@*" - многострочная строка. Данные выводятся в колонку.

Размер поля равен количеству указанных символов.
Символ '^' в начале поля имеет специальное значение.
Так:

для строчного скаляра:

Пример:

#!/usr/local/bin/perl
#
#	Программа печати пригласительного билета
#
$кому = "Чапаеву Василию Ивановичу";
$от_кого = "Компания МММ";
$адрес = "Москва, ул. Петровка, д 38";
$текст = "Уважаемый Василий Иванович! Компания МММ имеет честь пригласить
Вас и Ваших близких на презентацию наших новых хромовых сапог, сделанных
на уровне мировых стандартов качества и дизайна.";
format STDOUT =

	П Р И Г Л А С И Т Е Л Ь Н Ы Й      Б И Л Е Т
----------------------------------------------------------------------
Кому: @<<<<<<<<<<<<<<<<<<<<<<<<<< | ^||||||||||||||||||||||||||||||| $кому, $текст | ^||||||||||||||||||||||||||||||| $текст От кого: @<<<<<<<<<<<<<<<<<<<<<<< | ^||||||||||||||||||||||||||||||| $от_кого, $текст | ^||||||||||||||||||||||||||||||| $текст Адрес:@<<<<<<<<<<<<<<<<<<<<<<<<<< | ^||||||||||||||||||||||||||||||| $адрес, $текст | ^||||||||||||||||||||||||||||||| $текст | ^||||||||||||||||||||||||||||||| $текст | ^||||||||||||||||||||||||||||||| $текст Отпечатано в типографии ИТУ 38 . write(); # Вывод данных. exit 0; # Конец программы 

Результат:


	П Р И Г Л А С И Т Е Л Ь Н Ы Й      Б И Л Е Т
----------------------------------------------------------------------
Кому: Чапаеву Василию Ивановичу    |   Уважаемый Василий Иванович!
                                   |     Компания МММ имеет честь
От кого: Компания МММ              |  пригласить Вас и Ваших близких
                                   |    на презентацию наших новых
Адрес:Москва, ул. Петровка, д 38   |   хромовых сапог, сделанных на
                                   |    уровне мировых стандартов
                                   |       качества и дизайна.
                                   |
----------------------------------------------------------------------
Отпечатано в типографии ИТУ 38

Специальные переменные:

Если вы хотите использовать одни и те же форматы для разных файлов, то самый простой путь:

	use FileHandle;                   # Указать в начале программы
	format_name файл имя_формата;     # Формат содержимого листа.
	format_top_name файл имя_формата; # Формат заголовка листа.
	write(файл);                      # вывод данных.

Здесь 'файл' имеется ввиду указатель файла полученный командой open();

Если вам нужно в теле листа выводить разного рода форматы (например заголовки групп или отбивку листа), то применяйте format_name.

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

 

Perl Технология программирования   Компьютерная графика Экономическая информатика   3GL   к 4GL

Знаете ли Вы, как разрешается парадокс Ольберса?
(Фотометрический парадокс, парадокс Ольберса - это один из парадоксов космологии, заключающийся в том, что во Вселенной, равномерно заполненной звёздами, яркость неба (в том числе ночного) должна быть примерно равна яркости солнечного диска. Это должно иметь место потому, что по любому направлению неба луч зрения рано или поздно упрется в поверхность звезды.
Иными словами парадос Ольберса заключается в том, что если Вселенная бесконечна, то черного неба мы не увидим, так как излучение дальних звезд будет суммироваться с излучением ближних, и небо должно иметь среднюю температуру фотосфер звезд. При поглощении света межзвездным веществом, оно будет разогреваться до температуры звездных фотосфер и излучать также ярко, как звезды. Однако в дело вступает явление "усталости света", открытое Эдвином Хабблом, который показал, что чем дальше от нас расположена галактика, тем больше становится красным свет ее излучения, то есть фотоны как бы "устают", отдают свою энергию межзвездной среде. На очень больших расстояниях галактики видны только в радиодиапазоне, так как их свет вовсе потерял энергию идя через бескрайние просторы Вселенной. Подробнее читайте в FAQ по эфирной физике.

{DATA}
НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution