Язык программирования Perl
Язык программирования Perl читать книгу онлайн
Курс знакомит с языком программирования Perl, с его принципами, основными возможностями и особенностями в объёме, достаточном, чтобы начать разрабатывать прикладные и системные задачи, включая программирование для сети Интернет.
Курс является достаточно подробным введением в язык программирования Perl. Описывается уникальная культура Perl и особенности, отличающие его от других языков программирования и во многом обусловившие его популярность. Рассматриваются основные средства программирования на языке Perl версии 5.8. Разбираются богатые возможности языка для создания самых разных приложений, а также особый стиль программирования на Perl. Курс ориентирован на студентов, начинающих программистов или разработчиков, применяющих другие языки и желающих писать прикладные или системные программы на Perl.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
use DB_File; # модули для работы с DBMuse Storable qw(freeze thaw); # и сохранения данныхmy %database; # хэш "привязывается"...tie %database, "DB_File", "mollusc.db" or die; # ...к БДopen my $text, '<', 'mollusc.txt' or die; # файл, откудаwhile (my $data = <$text>) { # читаем данные,chomp($data); # удаляя n# и разбивая строку на поля по разделителю ';':my ($id, $name, $latin, $area) = split(';', $data);my %record = ( # заполняем поля записи БД:ID => $id, # идентификатор экземпляраNAME => $name, # наименование моллюскаLATIN => $latin, # латинское названиеAREA => $area); # ареал обитанияmy $serialized = freeze %record; # "замораживаем"$database{$id} = $serialized; # и сохраняем запись}close $text; # закрываем тестовый файлuntie %database; # и базу данныхПосле того как база данных DBM создана, мы можем обрабатывать в ней данные, используя функции работы с хэшами, хорошо знакомые нам из лекции 6. Например, так будет выглядеть поиск по ключу:
use DB_File; # модули для работы с DBMuse Storable qw(freeze thaw); # и сохранения данныхmy %database; # хэш "привязываем"...tie %database, "DB_File", "mollusc.db" or die; # ...к БДmy $id = 65590; # ищем "Перловицу"if (exists $database{$id}) { # по идентификаторуmy $serialized = $database{$id}; # считываем иmy %record = %{ thaw($serialized) }; # "размораживаем"printf "%5d %s %s %sn", # запись БД в хэш$id, $record{NAME}, $record{LATIN}, $record{AREA};}untie %database; # "отвязываем" БД от хэша# будет выведено: 65590 Перловица Unio pictorumДля перебора всех записей файла DBM можно пользоваться функциями keys() и each(), а для удаления записи - применить функцию delete().
С широким распространением персональных компьютеров стал популярным формат баз данных, применяемый в "настольных" СУБД dBASE, Clipper и FoxPro, семейство которых обобщенно называется XBase. Базы данных в этом формате хранятся в таблицах с суффиксом DBF (Database File), а для работы с записями такой таблицы широко применяется произвольный доступ к отдельным записям и перебор записей в цикле. (Хотя работать с ними можно также при помощи языка реляционных запросов SQL.) Одно из средств для работы с DBF-таблицами в программах на Perl - это модуль XBase, который можно загрузить из хранилища модулей CPAN. Он предоставляет объектный интерфейс для создания и изменения баз данных в формате XBase. Например, программа создания таблицы DBF будет выглядеть так:
use XBase; # модуль работы с БД в формате DBFmy $table = XBase->create( # метод создания таблицы"name" => "mollusc.dbf", # имя файла# имена полей (колонок, столбцов) таблицы:"field_names" => ["ID", "NAME", "LATIN", "AREA"],# типы данных (N - число, C - строка, D - дата):"field_types" => [ "N", "C", "C", "C"],# максимальные длины полей:"field_lengths" => [ 5, 35, 30, 45],# длины дробной части (для чисел):"field_decimals" => [ 0, undef, undef, undef]);$table->close(); # метод закрытия файла БДДалее потребуется программа добавления данных в созданную таблицу из текстового файла. Например, такая:
use XBase; # модуль работы с БД в формате DBFmy $table = new XBase "mollusc.dbf" # конструктор DBFor die Xbase->errstr; # обработка ошибокmy $recno = 0; # добавляемые записи нумеруются с нуляopen my $text, '<', 'mollusc.txt' or die; # файл, откудаwhile (my $data = <$text>) { # читаем данные,chomp($data); # удаляя n# и разбивая строку на поля по разделителю ';':my ($id, $name, $latin, $area) = split(';', $data);# добавляем запись, указывая поля в порядке создания$table->set_record($recno, $id, $name, $latin, $area);$recno++; # и увеличиваем счетчик записей}close $text; # закрываем тестовый файл$table->close(); # и файл базы данныхМодуль XBase предоставляет все необходимые методы для работы с таблицами баз данных. Многие из них основаны на возможности произвольного доступа к любой записи DBF-файла по ее номеру. Например, таким образом можно прочитать, изменить или удалить запись по номеру $record_number:
# считать запись в хэш, с доступом к нему по ссылке:
