Язык программирования Perl
Язык программирования Perl читать книгу онлайн
Курс знакомит с языком программирования Perl, с его принципами, основными возможностями и особенностями в объёме, достаточном, чтобы начать разрабатывать прикладные и системные задачи, включая программирование для сети Интернет.
Курс является достаточно подробным введением в язык программирования Perl. Описывается уникальная культура Perl и особенности, отличающие его от других языков программирования и во многом обусловившие его популярность. Рассматриваются основные средства программирования на языке Perl версии 5.8. Разбираются богатые возможности языка для создания самых разных приложений, а также особый стиль программирования на Perl. Курс ориентирован на студентов, начинающих программистов или разработчиков, применяющих другие языки и желающих писать прикладные или системные программы на Perl.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
format STDOUT =1. Строка шаблонов содержит поля: @<<<<< и @###.##'поле1', $field2# 3. Комментарий: во 2-й строке данные для вставки в 1-ю4. Литеральная строка выводится "как есть"..В комментариях и литеральных строках нет ничего особенного, самое интересное содержится в строках шаблонов, содержащих описания полей отчета.
Поле отчета - это пространство указанной ширины, расположенное в определенном месте отчета, куда помещаются данные в нужном представлении. (Например, конкретное поле в отчете может быть описано таким образом - "в начале первой строки заголовка каждой страницы должна выводиться текущая дата в следующем виде: день (две цифры с ведущим нулем), месяц (две цифры с ведущим нулем) и год (четыре цифры с ведущим нулем), разделенные точками".) Поля отчета в описании формата представлены в виде так называемых поледержателей (fieldholders). Поледержатель (или переменная поля) представляет из себя шаблон, описывающий тип поля, его ширину в символах, выравнивание значения внутри поля и другие преобразования, которые нужно выполнить над данными при размещении их в этом поле во время формирования отчета. Поледержатель начинается с символа начала шаблона (@ или ^), за которым следуют символы описания шаблона. Число символов в шаблоне, включая символ начала шаблона, определяет ширину помещаемых в отчет данных. Несколько примеров поледержателей с пояснениями приведены в таблице 10.1:
Таблица 10.1. Примеры описания полей в формате отчета
| Поледержатель | Описания формата и преобразований |
|---|---|
| @<<<<<<<<<<< | Вывести текстовое значение в поле шириной в 12 символов. Выровнять его по левому краю, дополнив при необходимости пробелами справа до ширины поля. Слишком длинное значение усечь до ширины поля |
| @<<<<<<<<... | Аналогично предыдущему примеру, но с выведением в конце поля многоточия, если значение усечено |
| @####.### | Вывести числовое значение в поле шириной в 9 символов, отведя 5 цифр под целую и 3 цифры - под дробную часть числа. Выровнять его по правому краю и дополнить при необходимости целую часть числа пробелами слева до ширины поля и округлить дробную часть до 3 знаков. При попытке вывести число, целая часть которого не умещается в ширину поля, заполнить поле символом '#' как признак |
| @0###.### | Так же, как в предыдущем примере, но с дополнением целой части значения ведущими нулями до ширины поля |
Полный список символов, применяемых для описания полей и форматов, приводится в таблице 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_nameE-mail @<<<<<<<<<<<<<<<<<< | Телефон @>>>>>>>>>$email, $phoneОграничение дискового пространства @####.## Мегабайт$quota---------------------------------------------------------Дата регистрации @# @<<<<<<<<< @### года{$day,$month_name,$year}.Из примера понятно, что формат отчета записывается в виде, максимально похожем на представление страницы отчета на экране или на бумаге. Каждому полю в строке шаблонов должно соответствовать скалярное значение в строке аргументов. Имена переменных в строке аргументов для наглядности часто располагаются под соответствующими поледержателями в предыдущей строке шаблонов, хотя это совсем не обязательно. Список переменных может находиться на нескольких строках аргументов (как это сделано в описании последней строки формата); в этом случае он должен заключаться в фигурные скобки. Имейте в виду, что скалярные переменные и массивы в строке аргументов разворачиваются в единый список скаляров, из которого по порядку берутся значения для заполнения полей.
