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


Авторские права

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

Здесь можно скачать бесплатно "Михаил Шохирев - Язык программирования Perl" в формате fb2, epub, txt, doc, pdf. Жанр: Прочая околокомпьтерная литература, издательство Интернет-университет информационных технологий - ИНТУИТ.ру, год 2006. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Рейтинг:
Название:
Язык программирования Perl
Издательство:
Интернет-университет информационных технологий - ИНТУИТ.ру
Год:
2006
ISBN:
5-94774-604-2
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

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

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Язык программирования Perl"

Описание и краткое содержание "Язык программирования Perl" читать бесплатно онлайн.



Курс знакомит с языком программирования Perl, с его принципами, основными возможностями и особенностями в объёме, достаточном, чтобы начать разрабатывать прикладные и системные задачи, включая программирование для сети Интернет.

Расчитанный на полугодовое изучение, курс является достаточно подробным введением в язык программирования Perl. Описывается уникальная культура Perl и особенности, отличающие его от других языков программирования и во многом обусловившие его популярность. Рассматриваются основные средства программирования на языке Perl версии 5.8. Разбираются богатые возможности языка для создания самых разных приложений, а также особый стиль программирования на Perl. Курс ориентирован на студентов, начинающих программистов или разработчиков, применяющих другие языки и желающих писать прикладные или системные программы на Perl.






Операция чтения "кристалл" в списочном контексте возвращает список всех строк с разделителями записей. Так, например, можно считать файл в массив, попутно отсортировав его:


@lines= sort(<$fh>); # в @lines отсортированные строки из $fh


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


print($list, $of, $output, $values); # вывод в STDOUT print STDOUT $list, $of, $output, $values; # вывод в STDOUT print(STDERR $list, $of, $output, $values); # вывод в STDERR print FILE $list, $of, $output, $values; # вывод в FILE print($file $list, $of, $output, $values); # вывод в $file


Для форматирования выводимой информации применяется функция printf(), которая преобразует выходные данные при помощи форматов преобразования, подробно объясненных в лекции 7 при описании функции sprintf(). Например, так можно вывести отформатированное текущее время в разные выходные потоки:


my ($hh, $mm, $ss) = (localtime)[2, 1, 0]; # выбрать из списка нужные значения: часы, минуты, секунды my $format = "%02d:%02d:%02d\n"; # формат вывода printf $format, $hh, $mm, $ss; # вывод в STDOUT printf(STDERR $format, $hh, $mm, $ss); # вывод в STDERR printf $file $format, $hh, $mm, $ss; # вывод в $file


Задавая различные форматы преобразования, можно выводить данные в требуемом представлении или в виде колонок указанной ширины. Более тонкое управление выводимыми данными организуется средствами форматирования отчетов, которые будут изучены в следующей лекции.

В файле с исходным текстом программы на Perl может располагаться встроенный файл с данными, которые помещаются в конце программного файла после специальной лексемы __END__ (в основной программе) или __DATA__ (в программном модуле). При выполнении программы данные из этого встроенного файла доступны для чтения при помощи специального файлового манипулятора DATA. Во встроенном файле удобно хранить тестовые данные для проверки работы программы после ее модификации. Вот пример чтения данных из встроенного файла:


while (my $line = <DATA>) { # читаем построчно данные print $line; # обрабатываем данные } __END__ Это данные из встроенного файла


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


open(my $fh, ">$file") or die("Ошибка открытия: $!"); binmode($fh);


Запись двоичных данных или данных фиксированной длины может выполняться с помощью функции print($fh $record). Также имеется функция небуферизованного вывода syswrite(), которой при вызове указываются три аргумента: файловый манипулятор, скалярная переменная с выводимыми данными и размер записываемого блока данных. Эта функция возвращает число фактически записанных байт (в случае ошибки syswrite возвращает undef), что можно использовать для проверки успешности записи. Это делается так:


syswrite($fh, $record, length($record)) == length($record) or die("Ошибка записи: $!");


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

Таблица 9.2. Шаблоны упаковки и распаковки данныхШаблонМнемоникаОписание преобразованияaArbitraryпроизвольная последовательность байтов, дополненная нулевым байтом \0AASCIIстрока символов ASCII, дополненная пробеламиb / BBit stringстрока битов с возрастающим / убывающим порядком битов c / CCharacterоднобайтовые символы со знаком / без знакаf / dFloat / Doubleчисло с плавающей точкой одинарной / двойной точностиFFloatчисло с плавающей точкой одинарной точности во внутреннем представлении (NV)Dlong Doubleдлинное число с плавающей точкой двойной точностиh / HHex stringшестнадцатеричная строка с младшим / старшим полубайтом (nybble) в началеi / IIntegerцелое (>=32 бита) число со знаком / без знакаj / Jцелое во внутреннем представлении со знаком (IV) / без знака (UV)l / LLongдлинное (32 бита) целое со знаком / без знакаn / NNetworkбеззнаковое короткое (16 битов) / длинное (32 бита) целое с сетевым порядком байтов (big endian)p / PPointerуказатель на строку, оканчивающуюся \0 / фиксированной длиныq / QQuadсверхдлинное (64 бита) целое число со знаком / без знакаs / SShortкороткое (16 битов) целое со знаком / без знакаuuuencodedстрока, кодированная по алгоритму uuencodeUUnicodeстрока символов Unicode v / VVAXбеззнаковое короткое (16 битов) / длинное (32 бита) целое с VAX-порядком байтов (little endian)wцелое, сжатое в соответствии с кодировкой BERxвставка \0 (pack) / пропуск байта по направлению вперед (unpack)Xпропуск байта по направлению назадZASCIIZстрока ASCIIZ (оканчивающаяся \0), дополненная \0@заполнение \0 до указанной позиции

Например, целочисленное значение, возвращаемое функцией time(), и дробное значение, возвращаемое функцией rand(), можно упаковать в переменную $record с помощью шаблона 'l1 d1', который означает: "одно длинное целое число (long) и одно число с плавающей точкой двойной точности (double)".


$record = pack 'l1 d1', time(), rand(); #


Вот еще несколько несложных примеров использования разных шаблонов для функции pack():


$bin = pack('a5', 'Yes'); # в $bin будет: 'Yes\0\0' $bin = pack('A5', 'Yes'); # в $bin будет: 'Yes ' $bin = pack('a4', 'abcd','x','y','z'); # в $bin: 'abcd' $bin = pack('aaaa', 'abcd','x','y','z'); # в $bin: 'axyz' $bin = pack('C2', 65,66,67); # в $bin будет: 'AB' $bin = pack('U2', 0x263A, 0x263B); # в $bin будет: '??' $bin = pack ('cxxc', 65,66); # в $bin будет: 'A\0\0B'


Для преобразования данных из двоичного вида применяется функция unpack(), которая распаковывает из скалярной переменной в список или массив значения двоичных данных в соответствии с указанным шаблоном.


@list_of_values = unpack($template, $binary_record);


Кроме того, с помощью функции unpack() можно из строки извлекать подстроки фиксированной длины. Например, так можно извлечь из записи файла поля определенной длины в переменные:


# Поля данных в записи файла: # c 1 по 7 байт - номер телефона # с 8 длиной 30 - фамилия, имя, отчество абонента # с 38 длиной 25 - адрес # 1234567Бендер Остап Ибрагимович РСФСР, Черноморск ($phone, $name, $address)= unpack('A7A30A25', $record);


Чтобы пропустить ненужные поля, достаточно указать в шаблоне пропуск определенного количества байтов. Например, так можно не извлекать поле с телефонным номером:


($name, $address)= unpack('x7A30A25', $record);


Подробное описание шаблонов и работы функций pack() и unpack() можно найти в стандартной документации с помощью все той же утилиты чтения документации:


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Язык программирования Perl"

Книги похожие на "Язык программирования Perl" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Михаил Шохирев

Михаил Шохирев - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

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

Отзывы читателей о книге "Язык программирования Perl", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.