Михаил Шохирев - Язык программирования Perl Страница 29

Тут можно читать бесплатно Михаил Шохирев - Язык программирования Perl. Жанр: Компьютеры и Интернет / Прочая околокомпьтерная литература, год -. Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте FullBooks.club (Фулбукс) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Михаил Шохирев - Язык программирования Perl

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту pbn.book@yandex.ru для удаления материала


Михаил Шохирев - Язык программирования Perl краткое содержание

Прочтите описание перед тем, как прочитать онлайн книгу «Михаил Шохирев - Язык программирования Perl» бесплатно полную версию:
Курс знакомит с языком программирования Perl, с его принципами, основными возможностями и особенностями в объёме, достаточном, чтобы начать разрабатывать прикладные и системные задачи, включая программирование для сети Интернет.Расчитанный на полугодовое изучение, курс является достаточно подробным введением в язык программирования Perl. Описывается уникальная культура Perl и особенности, отличающие его от других языков программирования и во многом обусловившие его популярность. Рассматриваются основные средства программирования на языке Perl версии 5.8. Разбираются богатые возможности языка для создания самых разных приложений, а также особый стиль программирования на Perl. Курс ориентирован на студентов, начинающих программистов или разработчиков, применяющих другие языки и желающих писать прикладные или системные программы на Perl.

Михаил Шохирев - Язык программирования Perl читать онлайн бесплатно

Михаил Шохирев - Язык программирования Perl - читать книгу онлайн бесплатно, автор Михаил Шохирев

В комментариях и литеральных строках нет ничего особенного, самое интересное содержится в строках шаблонов, содержащих описания полей отчета.

Поле отчета - это пространство указанной ширины, расположенное в определенном месте отчета, куда помещаются данные в нужном представлении. (Например, конкретное поле в отчете может быть описано таким образом - "в начале первой строки заголовка каждой страницы должна выводиться текущая дата в следующем виде: день (две цифры с ведущим нулем), месяц (две цифры с ведущим нулем) и год (четыре цифры с ведущим нулем), разделенные точками".) Поля отчета в описании формата представлены в виде так называемых поледержателей (fieldholders). Поледержатель (или переменная поля) представляет из себя шаблон, описывающий тип поля, его ширину в символах, выравнивание значения внутри поля и другие преобразования, которые нужно выполнить над данными при размещении их в этом поле во время формирования отчета. Поледержатель начинается с символа начала шаблона (@ или ^), за которым следуют символы описания шаблона. Число символов в шаблоне, включая символ начала шаблона, определяет ширину помещаемых в отчет данных. Несколько примеров поледержателей с пояснениями приведены в таблице 10.1:

Таблица 10.1. Примеры описания полей в формате отчетаПоледержательОписания формата и преобразований@<<<<<<<<<<<Вывести текстовое значение в поле шириной в 12 символов. Выровнять его по левому краю, дополнив при необходимости пробелами справа до ширины поля. Слишком длинное значение усечь до ширины поля@<<<<<<<<...Аналогично предыдущему примеру, но с выведением в конце поля многоточия, если значение усечено@####.###Вывести числовое значение в поле шириной в 9 символов, отведя 5 цифр под целую и 3 цифры - под дробную часть числа. Выровнять его по правому краю и дополнить при необходимости целую часть числа пробелами слева до ширины поля и округлить дробную часть до 3 знаков. При попытке вывести число, целая часть которого не умещается в ширину поля, заполнить поле символом '#' как признак@0###.###Так же, как в предыдущем примере, но с дополнением целой части значения ведущими нулями до ширины поля

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

Таблица 10.2. Символы, применяемые при описании полей и форматовСимволОписаниеПримеры использования@начало обычного поля@ @<< @||| @>> @##^начало специального поля^ ^<< ^||| ^>> ^##<текстовое поле с выравниванием значения влево и добавлением пробелов справа@<<<<< ^<<<|текстовое поле с центрированием значения и добавлением пробелов с обеих сторон@||||| ^|||>текстовое поле с выравниванием значения вправо и добавлением пробелов слева@>>>>> ^>>>#числовое поле с выравниванием значения вправо с добавлением пробелов слева@#### ^###0(вместо первого #) числовое поле с выравниванием значения вправо и добавлением нулей слева@0### ^0##.десятичная точка в числовом поле@.### @0##.##...закончить текстовое поле многоточием, чтобы показать усечение значения@<<<<<[email protected]*поле переменной ширины со значением, состоящим из нескольких строк@*^*поле переменной ширины для следующих строк многострочного значения^*~подавление вывода строки с пустыми значениями полей^* ~~~повторять строку, пока все значения полей не станут пустыми~~ ^*{}группировка списка значений, который располагается на нескольких строках аргументов{$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} .

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

Для форматированного вывода отчетов применяется функция write(), которая оформляет очередную порцию данных в соответствии с форматом отчета и выводит их в указанный выходной поток. Обращение к функции write() иногда называют вызовом формата. В качестве аргумента функции write() может передаваться файловый манипулятор выходного потока. Вызванная без аргументов, она направляет отчет в текущий выходной поток. Перед обращением к ней нужно заполнить новыми данными переменные, перечисленные в строках аргументов текущего формата. Обычно write() вызывается в цикле для вывода в отчет очередной строки. По историческим причинам для заполнения полей отчета часто используются глобальные переменные. Лексические переменные, объявленные с помощью my(), доступны в формате только тогда, когда формат и лексические переменные объявлены в одной области видимости. Подробно об областях видимости переменных будет рассказано в лекции 12.

Если для выходного потока описан формат начала страницы отчета, то перед выводом строк отчета функцией write() в начале каждой страницы автоматически размещаются данные шапки страницы в соответствии с форматом начала страницы. Программа для вывода данных по формату, заданному в предыдущем примере, может выглядеть таким образом:

# данные в записи входного файла разделены запятыми 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 будет выведен отчет, состоящий вот из таких карточек:

Учетная карточка пользователя N 00001 --------------------------------------------------------- Фамилия Wall | Login larry Имя Larry | Группа root Отчество | E-mail [email protected] | Телефон +123456789 Ограничение дискового пространства 9876,54 Мегабайт --------------------------------------------------------- Дата регистрации 18 декабря 1987 года

Перейти на страницу:
Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.
Комментарии / Отзывы
    Ничего не найдено.