Введение в Perl - Маслов Владимир Викторович
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.
Отладка Перл программ
В Перл реализован превосходный механизм отладки программ. Вам достаточно запустить программу с ключом '-d' и вы начнете работать с интерактивным отладчиком. Вам становятся доступны все переменные и массивы, вы можете вводить выражения и операторы, трассировать, исследовать работу программы в по-шаговом режиме и многое другое.
Ниже перечисленны команды отладчика которые вы можете вводить на его подсказку.
Команды отладчика.h – Получить справку по командам.
T – Просмотреть стек программы
s – Выполнить одну команду и остановиться.
n – Выполнить подпрограмму и остановиться.
r – Выполнить текущую подпрограмму и остановиться.
c – Продолжить выполнение до сдедующей точки остановки.
c номер – Продолжить выполнение до строки с данным номером.
<CR> – Повторить последнию команду n или s.
l min+incr – Вывести incr+1 строк программы начиная со строки min.
l min-max – Вывести строки начиная с min до max.
l номер – Вывести строку с указанным номером.
l – Вывести следующий экран строк.
- – Вывести предыдущий экран строк.
w строк – Вывести экран строк. Текущая в середине.
l подпрограмма – Вывести строки указанной подпрограммы.
/шаблон/ – Найти строку в тексте программы.
?шаблон? – Обратный поиск строки в тексте программы.
L – Вывести строки с точками останова и активами.
S – Вывести имена всех подпрограмм.
t – Включить или выключить трассировку.
b строка [ условие] – Установить точку остановки.
b подпрограмма [ условие ] – Установить точку остановки в начале указанной подпрограммы и если указано при данном условии.
d – Убрать точку остановки.
D – Убрать все точки остановки.
a строка команда - Установить актив (команду которая выполнится вместе с указанной строкой. «команда» – обычныая команда Перл.
A – Стереть все активы.
< команда – Выполнять команду перед каждой остановкой.
> команда – Выполнить команду после остановки отладчика.
V модуль [имена] – Вывести значение всех или указанных имен в модуле. Внимание! Символ '$' не вводится.
X [имена] – То же что и V , но только для текущего модуля.
! номер – Выполнить одну строку программы.
! -номер – Выполнить одну команду с номером предшествующим текущей строке.
H – n – Вывести n последних выполненных команд.
q или ^D – Выход из программы.
команда – Выполнить команду Перл.
p выражение – Вывести значение выражения.
Конструктор BEGIN не отслеживается отладчиком, но можно в теле конструктора указать:
$DB::single =1;
и отладчик остановится. Данная команда не вызовет ошибку при работе без отладчика.
Список литературы
При написании книги автор в основном пользовался описанием
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Введение в Perl - Маслов Владимир Викторович, относящееся к жанру Базы данных. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.

