Как собрать makefile под windows

адельтон

Ян Паздзиора, 1998 г.

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

Где находится CPAN

Точкой входа в CPAN является URL-адрес http://www.perl.com/CPAN/ . На TEN-34-CZ можно целиться, например, в зеркало http://www.fi.muni.cz/ftp/pub/perl/ .

Категория модуля

Многие из задач, которые мы собираемся выполнять на Perl, вероятно, уже были выполнены кем-то до нас. Файл modules/00modlist.long.html содержит как подробное введение в проблему, т.е. информацию о том, что представляет собой модуль, так и список существующих модулей, разделенный на разделы по направленности и с краткими комментариями по каждому модулю.

Вот группы, на которые неофициально классифицируются модули:

  1. Основные модули Perl, расширения Perl и инструменты документации
  2. Инструменты разработки
  3. Интерфейс к операционным системам
  4. Сети и работа в сети, межпроцессное взаимодействие
  5. Типы данных и инструменты для работы с ними
  6. Интерфейсы базы данных
  7. Пользовательские интерфейсы
  8. Интерфейс и эмуляция других языков программирования
  9. Файлы, файловые системы, блокировка файлов
  10. Обработка строк, текстов, разбор, поиск
  11. Обработка параметров командной строки и файлов конфигурации
  12. Интернационализация и локализация
  13. Аутентификация, безопасность и шифрование
  14. Всемирная паутина, HTML, HTTP, CGI, MIME
  15. Инструменты для создания серверов и демонов
  16. Архивирование, сжатие, преобразование
  17. Изображения, рисунки и графика
  18. Новости почты и Usenet
  19. Управление расчетами (обратные вызовы и обработка исключений)
  20. Файловые дескрипторы и потоки ввода/вывода
  21. MS Windows
  22. Разное

Дополнительный контент CPAN

Помимо модулей, на CPAN мы можем найти исходный код самого Perl в подкаталоге src, а также документацию по Perl, включая FAQ, в каталоге doc. Возможно, стоит отметить, например, doc/perlref-* , который представляет собой подброшенное справочное руководство в формате, продаваемом O’Reilly, или подкаталог doc/FMTEYEWTK , гораздо больше, чем все, что вы когда-либо хотели знать.

Читайте также:  Как сохранить размер окна windows 10

Поиск по URL-адресу http://search.cpan.org/ с различными критериями поиска также может помочь при поиске решений на CPAN.

Распределение модулей

Каждый модуль или пакет модулей распространяется в виде архива (либо .tar.gz, либо .zip) и находится в каталоге его автора. Каталоги авторов находятся в подкаталоге авторов, а ссылки обычно проходят через author/id с краткой идентификацией каждого человека. Название обычно включает номер версии, и если дистрибутив содержит файл README, он автоматически доступен на CPAN рядом с данным архивом.

Как установить

Разархивируйте tar, перейдите в созданный каталог и запустите

Конечно, если предыдущие этапы прошли успешно. Первым пунктом, безусловно, может быть чтение документации и рекомендаций по установке, но кто читает руководства, если нет проблем с этим 😉 Perl-команда Makefile.PL создает Makefile, который продолжает быть привязанным (путями и вызовами perl) к переводчик, который был вызван в .PL. Таким образом, у нас может быть несколько версий Perl на диске, а Makefile.PL позаботится о том, чтобы мы установили модули для правильной версии.

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

что может помочь нам найти ошибку с нашей стороны.

Если мы уверены, что ошибка не наша, желательно отправить подробное описание ошибки вместе с версиями Perl и модуля автору или лицу или списку рассылки, ответственному за техническое обслуживание. Реакция обычно очень быстрая — если мы сообщаем об ошибке, то надеемся на ее быстрое устранение, если нет, то нам не на что жаловаться.

Автоматическая установка

Модуль CPAN поставляется с дистрибутивом Perl, что упрощает установку и обновление новых версий модулей на нашем локальном компьютере. Самый простой старт

предложит нам интерактивную подсказку, позволяющую: искать модули на CPAN и сравнивать их версии с установленными версиями (варианты i и m ); найти модули с более высоким номером версии на CPAN (опция r); запустить установку ( install ), которая произойдет только в том случае, если make и make test были в порядке; создайте список установленных модулей, чтобы мы могли затем быстро установить ту же конфигурацию (автоматическая сборка, перекомпиляция) на другой машине или другой платформе.

Читайте также:  Как посмотреть размер монитора на windows 10

При установке модуля модуль CPAN загрузит дистрибутив с выбранного нами зеркала CPAN, используя либо внешние программы, либо библиотеку LWP. Он сравнит контрольную сумму .tar, извлечет ее, а затем выполнит описанную выше последовательность шагов установки. Параметры работы этого менеджера установки хранятся на диске, поэтому не теряются при его завершении.

Документация

Perl поддерживает документацию непосредственно в файле модуля в формате POD (Plain Old Documentation). Эта документация включена в установкуавтоматически переформатируются как справочные страницы и устанавливаются вместе с собственным кодом модулей. Таким образом, документация доступна в Интернете даже после того, как мы удалили дистрибутив с диска для экономии места.

CGI, MIME

Одной из областей, где популярность Perl очень заметна, являются CGI-скрипты, поскольку количество системных функций вместе с регулярными выражениями и текстовыми функциями дает возможность быстро достичь желаемой цели. Поворачивается как

работают быстро и эффективно. Однако делать одно и то же в двадцатый раз быстро надоедает, именно поэтому существует, например, CGI-модуль, предлагающий большинство функций для обработки ввода с использованием всех HTTP-методов, манипулирования переданными параметрами и создания, например , HTML-ответ. Преимущество заключается как в чистоте решения, так и в определенной гарантии того, что код, разработанный и поддерживаемый Perl-сообществом, ведет себя в соответствии с письменными и неписаными стандартами и запоминает даже нестандартные ситуации.

Типичный сценарий может быть

Аналогично, для работы с форматами MIME, наверное, лучше напрямую использовать проверенный модуль, например MIME::Base64 или MIME::Decoder, чем многократно разрабатывать аналогичный код. Свобода Perl, как в вопросе типов, так и, например, при работе с большими объемами данных, всегда позволяет при необходимости обращаться к стандартным Perl-инструментам, с помощью которых мы быстро сделаем то, что нужно, и только для рутинных части скрипта мы будем использовать функции из модуля.

От CGI и HTML мы можем легко перейти к модулю GD, с помощью которого мы можем рисовать .gif в реальном времени и отправлять его на выход вместе с заголовками HTTP, или мы можем, например, упростить создание графов, надстроив поверх GD модуль GIFgraph. Или мы можем использовать Mail::Folder для просмотра архива дискуссионной группы, а для приблизительного поиска мы будем использовать либо регулярное выражение, либо один из модулей Text::.

LWP, нетто

Модули Net:: работают на уровне доступа к чему-то в сети, где после двоеточия идут названия протоколов, например FTP, Time или NNTP. При их использовании мы снова создаем объект с конструктором и вызываем к нему методы, которые проецируются на соответствующие действия используемого протокола, например

Читайте также:  Что передает windows 10 как отключить

Библиотека LWP:: для доступа к WWW в модулях Perl построена поверх протокола HTTP. Они предоставляют несколько уровней сложности (и вариантов), от простого

через класс HTTP::Request к широко настраиваемому LWP::UserAgent .

База данных

Доступ к механизмам баз данных из Perl в последнее время стал очень распространенным приложением. Существует спецификация интерфейса и модуль DBI (интерфейс базы данных), который определяет набор методов для подключения к базе данных, отправки SQL-запроса и чтения ответа. Для всех основных баз данных существуют драйверы баз данных, DBD:: , которые преобразуют эти унифицированные вызовы в вызовы API отдельных баз данных.

с последующим выполнением команды. Написанную таким образом программу можно перенести в другую базу данных, просто изменив параметр в вызове connect. Но поскольку существует более одного способа сделать что-то, мы, конечно, также можем использовать нестандартные расширения, определенные базой данных и драйвером, которые могут быть быстрее, но также не переносимы.

Ядро большинства драйверов написано на C, и для его компиляции требуется хотя бы минимальная часть среды разработки для данной базы данных. Всегда необходимо читать README, где перечислены требования для установки того или иного драйвера.

Одним из очень интересных драйверов является DBD::pNET, который действует как прокси для доступа к базе данных на удаленном компьютере. Например, пусть у нас есть Informix на Solaris со средой разработки, к которой мы хотим получить доступ с машины Linux. У нас нет Informix для Linux, поэтому мы не можем скомпилировать драйвер в Linux и использовать его.прямая поддержка сетевых баз данных (к тому же часто за специальные деньги). Но мы можем скомпилировать DBD на Solaris и запустить на нем так называемый pNETagent — демон, который отправляет запросы, поступающие с Linux-машины, в базу данных и возвращает результаты. Передача данных может быть зашифрована, а доступ разрешен, например, только для определенных машин.

Вывод

Я надеюсь, что эта статья поможет вам лучше ориентироваться в базовом (и только 😉 Perl-архиве и что вы найдете в нем разумные решения для работы и развлечения.

Поделиться с друзьями
ОС советы