Установка Perl


Локальная установка и использование Perl-модулей

Рассмотрены способы установки Perl-модулей в локальную директории с помощью cpanm , использование local::lib для работы с ними, и carton для автоматизации процесса.

Часто требуется изолировать установленные модули для каждого проекта отдельно. Это может быть связано с разными версиями, необходимостью локализации или, например, с нежеланием устанавливать модули в систему, если вы просто тестируете какое-то новое Perl-приложение. Для примера возьмем простейшую серверную программу на Plack , которая при наличии параметра name приветствует посетителя:

Наш проект на текущий момент имеет следующую структуру:

cpanm

Далее с помощью cpanfile (подробнее о формате cpanfile читайте в статьей Что такое cpanfile?) укажем зависимости:

Теперь наш проект выглядит так:

Установим зависимости в локальную директорию. Пусть, например, это будет third-party . Для того, чтобы все модули устанавливались несмотря на их присутствие в локальной системе, воспользуемся ключом -L у cpanm :

Установка займет некоторое время и на выходе мы получим следующую структуру:

Как видно, модули установились в third-party/lib/perl5 , исполняемые файлы в third-party/bin и man -страницы в third-party/man . В директории perl5 присутствует также x86_64-linux-gnu-thread-multi , куда обычно устанавливаются модули, требующие компиляции. К сожалению, до сих пор Plack требует компилятор для установки, однако ведутся работы по разделению дистрибутива на несколько пакетов, где необходимые модули для запуска приложения не будут требовать компиляции.

Работа cpanm на этом закончена. Мы установили необходимые модули в локальную директорию. Теперь необходимо запустить наше приложение.

local::lib

Если мы попробуем запустить следующим образом:

То получим вполне ожидаемую ошибку:

Мы, конечно, можем указать perl с помощью ключа -I где искать модули, однако это довольно утомительно. Более того, часто можно забыть подключить директорию с компилированными модулями, и это не так просто автоматизировать, потому как название директории меняется в зависимости от операционной системы. Именно для подключения локальных модулей нам поможет local::lib .

Ключ -M интерпретатора подключает модули до запуска скрипта. А с помощью = можно передать модулю параметры. local::lib получает их в методе import и подключает необходимую директорию.

Использование cpanm и local::lib таким образом позволяет быстро установить модули рядом с проектом и запустить его. Однако, для больших приложений, которые часто приходится устанавливать и запускать на разных системах, это не слишком удобно.

Carton

Carton объединяет в себе возможности cpanm и local::lib (на самом деле, внутри он использует эти два модуля), а также избавляет от необходимости ручного указания путей, позволяет контролировать зависимости и упрощает процесс поставки приложения.

Для работы carton достаточно cpanfile , который у нас уже есть. Вернемся к структуре проекта до установки зависимостей и инициализируем carton :

Модули установились в директорию local , но это не так важно, потому как carton сам позаботится о добавлении нужных путей для запуска perl . Кроме того, carton создал файл cpanfile.snapshot , где указаны установленные зависимости с их версиями. Это файл стоит добавить в систему контроля версий. При запуске carton install —deployment и при наличии cpanfile.snapshot будут установлены указанные там версии. Таким образом, на машине другого разработчика или сервере будет такое же окружение.

carton exec запускает приложение в виртуальном окружении, где все модули подгружаются из директории local . Так, например, можно проверять все ли модули указаны как зависимости.

carton также позволяет собирать дистрибутив с зависимостями:

Теперь в директории vendor/cache находятся тарболы модулей. Просто скопировав их на другую машину и запустив там:

модули будут устанавливаться из тарболов без обращения к CPAN. Так можно разворачивать приложения на серверах без доступа к внешним сетям.

Другие решения

Другим подходом для контроля зависимостей является создание своего приватного CPAN. Это позволяют сделать модули CPAN::Mini и подобные ему. Отдельно стоит приложение Pinto (читайте подробнее в статье Pinto — собственный CPAN из коробки), которое автоматизирует процесс установки, контроля и фиксирования модулей.

Как установить perl в Ubuntu / Debian

Установка:

Для установки perl в Ubuntu / Linux Mint / Debian, введите в Терминал :

Подробная информация о пакете:

Практический язык извлечения и отчета Ларри Уолла

Perl — это высокопроизводительный, многофункциональный язык программирования с более чем 20-летним развитием. Perl 5 работает на более чем 100 платформах от портативных компьютеров до мэйнфреймов. Perl подходит как для быстрого прототипирования, так и для крупномасштабных проектов развития.

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

Установка Perl

Pers.narod.ru. Perl. Установка Perl под Windows

Прекрасный язык CGI-программирования Perl, к сожалению, почти вытеснен PHP. Тем не менее, ничего красивее и удобнее для обработки строк и текстовых файлов я не знаю по сей день, и иногда проще «реанимировать» старый скрипт, чем делать то же самое средствами PHP или других языков. С помощью этой небольшой статьи Вы сможете скачать, установить и настроить Perl на локальной Windows-машине (на момент написания статьи это была Windows XP, но, думаю, всё будет работать и в более новых версиях), а также решить типичные проблемы, связанные с закачкой Perl-скриптов на хостинг.

1. Во-первых, нужно иметь установленный локальный сервер под Windows (можно, разумеется, установить Apache, но мне обычно хватало Internet Information Services — встроенного в Windows локального сервера). О том, как установить IIS, читайте в этой статье.

2. После установки IIS скачаем и установим Active Perl под Windows, надёжнее всего это сделать с официальной страницы: https://www.activestate.com/activeperl/, размер архива до 20 Мб. Во избежание проблем ставьте Perl в корень диска c: или d: , так, чтобы его папкой стала c:\Perl ( d:\Perl ).

3. Привяжем к IIS типы файлов Perl’а. Для этого зайдём Пуск, Администрирование, Internet Information Services (или Пуск, Выполнить, %SystemRoot%\system32\inetsrv\iis.msc , если вдруг нет такого меню), раскроем список Web-служб локального компьютера до уровня локального Web-сервера, нажмём на нём правую кнопку мыши и выберем «Свойства» (см. рис.)

В окне «Свойства» на вкладке «Документы» нажимаем кнопку «Добавить» и добавляем в список имён документов по умолчанию (опция «Задать документ, используемый по умолчанию» включена) имя index.pl . На вкладке «Домашний каталог» проверяем, что в списке «Разрешен запуск:» выбран пункт «Сценарии и исполняемые файлы», нажимаем кнопку «Настройка» в окне «Настройка приложения» делаем следующие добавления в список «Сопоставление приложений»:
Исполняемый файл: c:\Perl\bin\perl.exe «%s» %s
Расширение: .pl
Команды (сократить до): GET,HEAD,POST (можно оставить и «все команды»)
Включена опция «Проверка наличия файла».

Аналогично для расширения .plx можно сделать отдельную запись, назначив исполняемым файлом строку c:\Perl\bin\perlis.dll . Хотя я ставил это и на расширение .pl , всё равно всё работало.

Для надёжности можно перезапустить сервер IIS (из меню, показанного на рисунке выше, выбрать «Остановить», затем «Пуск»).

4. Проверим работу на тестовом файле. В папке C:\Inetpub\wwwroot\ (корень нашего Web-сервера) создадим файл с именем test.pl и следующим содержимым:

В адресной строке браузера выполним https://127.0.0.1/test.pl

На экране строка Hello, Perl! ? Поздравляю, всё работает. Если что-то не так — во-первых, разбираемся с правами на файлы (в той же статье п. 3-5), во-вторых, проверяем, разрешает ли IIS выполнение файлов в корне сервера (помните, выше мы выбирали пункт «Сценарии и исполняемые файлы»?), в-третьих смотрим, нет ли ошибки в пути к интерпретатору Перла (назначение на тип файла .pl).

Разумется, скрипты можно размещать в любых папках, вложенных в wwwroot , тогда в пути к скрипту на локалхосте добавится путь по дереву папок, начиная с корня сервера — например, https://127.0.0.1/cgi-bin/test2.pl для скрипта test2.pl , расположенного локально в папке C:\Inetpub\wwwroot\cgi-bin (по умолчанию серверные скрипты, кстати, должны располагаться как раз в ней).

Типовые проблемы с Perl-скриптами на хостинге

Предполагается, что Вы закачиваете скрипты на сервер Интернет через службу передачи файлов FTP любым FTP-клиентом, имеющим необходимый минимум настроек. Мне лично в большинстве случаев хватает клиента, встроенного в Far Manager, поэтому скажу несколько слов о работе с FTP его средствами. Нажимаем Alt+F1 или Alt+F2 , выбираем под списком дисков FTP. Если нужного соединения в панели ещё нет, создаём его нажатием Shift+F4 . Обычно достаточно ввести в первое поле окна «Ввод адреса FTP» строку вида ftp://пользователь:пароль@сервер:порт/папка , например, ftp://misha314:pg0_xE1@ftp.narod.ru для пользователя сервиса Народ.Ру с логином misha314 и паролем pg0_xE1 . Платные хостинги тем более обычно предоставляют данные для доступа к FTP. Для многих серверов также нужно выставить опции «Пассивный режим», в целях безопасности рекомендуется также «Использовать Firewall», «Расширенное окно команд» включено по умолчанию, так что пусть так и будет. Введя данные, нажимаем «Сохранить» и соединение сохраняется в панели. Перейдя по его ссылке, теперь мы можем закачивать файлы на сервер, создавать там папки и менять права доступа к этим объектам. Как раз последний шаг обычно создаёт проблемы, давайте вкратце обсудим, как меняются и что означают эти самые права. Для смены прав в панели FTP Far Manager’а выделите нужные файлы клавишей Ins и нажмите Ctrl+A . Появится окно как на рисунке:

Права доступа к файлам действуют во всех нормальных операционных системах (я не про Windows, а про Unix-совместимые системы, которые обычно стоят на серверах Интернет, куда Вы закачиваете файлы) и разделяются на три категории:

  • права владельца файла (u);
  • права группы (g);
  • права всех остальных пользователей (o).

Именно в этом порядке на рисунке показаны 3 группы переключателей.

В каждой категории можно установить или снять 3 вида прав:

  • R — право на чтение;
  • W — право на запись;
  • X — право на исполнение.

Права доступа обозначаются так же цифрами:

  • 4 — читать (R),
  • 2 — записывать (W),
  • 1 — исполнять (X),
  • 0 — ничего нельзя делать.

На самом деле это не просто цифры, а двоичные коды комбинаций RWX , но для простоты сойдёт и так. Сумма этих цифр и показывает права доступа. Вот основные варианты:

  • 7 = 4 + 2 +1 (полные права, все чекбоксы включены),
  • 6 = 4 + 2 (чтение и запись, включены R, W, выключен X),
  • 5 = 4 + 1 (чтение и выполнение, включены R, X, выключен W),
  • 4 = 4 + 0 + 0 (только чтение),

и т.д. для каждой из 3 категорий. В итоге получается, что права 777 обозначают, что и владелец, и группа пользователей, к которой он относится, и любой сторонний пользователь имеют полный доступ к этим файлам. Как в Windows с правами администратора. Поэтому ни один нормальный скрипт таких прав не потребует. А требуется обычно 755 (положение переключателей XXX X0X X0X ) для папок и исполняемых файлов, в том числе, скриптов с расширением .pl , и 644 ( X0X X00 X00 ) или 744 ( XXX X00 X00 ) для всех остальных файлов. Теперь, надеюсь, Вы сможете понять фразу «поставить права 755». Кстати, какие права на рисунке? Правильно, 644.

Итак, всё, что потребуется — создать подключение FTP, закачать в нужную папку (хостер обычно сообщает, какую, а корневая папка Вашего сервера уже создана) файлы с расширением .pl , поставить на них и вложенные папки права 755, на прочие файлы — 644 и набарть URL-адрес нужной страницы? Как бы ни так. Есть ещё куча нюансов, ради них-то я и начал этот раздел.

Мастер Йода рекомендует:  Практика — всё по этой теме для программистов

1. Закачивать файлы с расширением .pl следует только как текстовые (включить флажок «Текстовый режим» окна «Передача файлов» Far Manager’а). Иначе рискуете получить внутреннюю ошибку сервера с кодом 500. Дело в том, что в Windows и DOS в конец каждой строки текстового файла добавляется по 2 символа — CR (возврат каретки, код символа 13) и LF (перевод строки, код 10), а в Unix-совместимых системах строка заканчивается единственным символом с кодом 10. Вариант передачи «Текстовый режим» как и раз и убирает лишние символы CR в конце строк. На самом деле мешает символ 13 только в конце первой строки Perl-скрипта —

Эта строка обозначает путь к интерпретатору Perl, на Windows-машине она ничего не делает, а вот при размещении на сервере необходима. Если файл не передан как текстовый, интерпретатор Перла просто воспринимает код 13 как часть пути и не может запустить скрипт. Думаю, не надо пояснять, что бинарные файлы (картинки, базы данных, видео и т.п.) ни в коем случае нельзя закачивать как текст — Вы просто испортите файл.

2. Кстати, эта строка не обязана быть такой как выше. На конкретном хосте может быть и

и что-нибудь ещё. Поэтому, если скрипт не работает, во вторую очередь уточните по документации или у админа путь к интерпретатору Перла.

3. Третье — проверьте права на файлы, как рассказано выше. На многих хостингах просто отключены из соображений безопасности права 777, а разрешено только 755 и т.д.

4. Perl-скрипт должен полностью формировать документ HTML вместе с HTTP-заголовками. В простом переводе это означает, что первой в теле скрипта должна печататься оператором print или echo строка

— именно так, с двумя переводами строки \n в конце.

5. Ошибку сервера 500 с сообщением в логе вроде «Premature end of script headers» может породить и синтаксическая неточность где-нибудь глубоко в недрах скрипта. Я, например, однажды бился часа 2, пока не нашёл примерно в 1000-й строке текста конструкцию вида

вместо требуемой правилами языка

— фигурные скобки в if оказались обязательны. после этого «мёртвый» скрипт заработал безупречно.

6. Многие скрипты имеют в отдельном файле с именем вроде config.pl или просто в начале текста настройки вида

Для работы скрипта обычно нужно корректно их установить. Если помнить, что в Unix, в отличие от Windows, в записи путей используется прямой слэш / , а не обратный \ , обычно это не так сложно. Тем более, что авторы снабжают настройки комментариями. Всё, что следует после символа «решётки» # до конца строки и есть комментарий.

7. Кстати, при отладке чужих, да и своих скриптов, бывает нужно закомментарить сразу многострочный кусок кода. В стандарте Perl такой возможности, как многострочные комментарии, нет, но на самом деле почти везде работает конструкция

— бывает, очень помогает.

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

Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.

Как устанавливать модули Perl вручную и используя CPAN

Установка модулей для Perl требуется для работы различных утилит, применяемх в повседневной рутине администрирования. Установка Perl модулей вручную с удоволетворением всех зависимостей это довольно скучный и нудный процесс.

Установка Perl модулей с испоьльзованием CPAN намного более лучшее решение, так как все зависимости определятся и установятся автоматически. В это статье я опишу оба метода установки модулей.

Когда какой-либо нужный модуль не установлен, приложение которое его использует будет показывать следующую ошибку. В данном случае отсутствует модуль XML: arser.

Установка Perl модулей вручную

Перейдите на веб-сайт CPAN Search и найдите модуль который вам нужно скачать. В этом пример мы скачаем и установим модуль XML: arser Perl. Я скачаю XML-Parser-2.36.tar.gz в /home/download

Собираем модуль

Устанавливаем модуль

Это простой модуль без зависимостей, поэтому он установился без проблем. Обычно, любой модуль Perl имеет несколько зависимостей. Ставить все модули поочередно описанным выше методом скучнейшая задача. Я рекомендую использовать для установки CPAN метод, описанный ниже. Вручную стоит собирать модули в случае отсутсвия подключения к интернету.

Автоматическая установка Perl модулей с использованием CPAN

Проверяем установлен ли CPAN

Для установки Perl модулей используя CPAN, убедитесь что команда cpan работает. В этом примере, модуль CPAN ещё не установлен.

Установка модуля CPAN с помощью yum

Результат работы команды:

Настраиваем span


При первом вызове cpan вы должны указать некоторые конфигурационные параметры как показано ниже. Я покажу только важные параметры конфигурации. Значения по умолчанию принимаются нажатием клавиши enter.

Установка Perl модулей с использованием CPAN

Вы можете использовать один из указанных тут методов для установки новых модулей:

В результате выполнения команды вы увидите

В примере выше Email::Reply зависит от нескольких других модулей. CPAN автоматически определил зависимости и установил Email::Reply и все другие необходимые модули.

Постовой

При работе с компанией ООО «Город» вывоз мусора перестанет быть для вас головной болью.

Установка Perl

П оддержка Perl для MySQL обеспечивается средствами клиентского интерфейса DBI / DBD . See section 8.2 Интерфейс Perl API для MySQL. Для клиентского кода Perl DBD / DBI требуется версия Perl 5.004 или выше. При использовании более старой версии Perl данный интерфейс не будет работать.

Д ля поддержки Perl в MySQL также требуется, чтобы была установлена программная поддержка клиентов MySQL. Если вы установили MySQL из файлов RPM, то клиентские программы находятся в RPM-пакете MySQL-client , а их программная поддержка — в RPM-пакете MySQL-devel . Убедитесь, что у вас установлена последняя версия RPM.

С версии 3.22.8 поддержка Perl поставляется отдельно от основного дистрибутива MySQL. Если вы хотите установить поддержку Perl, то необходимые файлы можно получить с https://www.mysql.com/Downloads/Contrib/.

Д истрибутивы Perl поставляются как сжатые tar-архивы с именами наподобие "MODULE-VERSION.tar.gz", где MODULE — имя модуля и VERSION — номер версии. Необходимо взять дистрибутивы Data-Dumper , DBI и Msql-Mysql-modules и установить их в указанном порядке. Процедура установки приведена ниже. Показанный пример приведен для модуля Data-Dumper , но сама процедура одинакова для всех трех дистрибутивов:

Распакуйте дистрибутив в текущем каталоге:

Эта команда создает каталог с именем `Data-Dumper-VERSION".
Перейдите в каталог, куда распаковался дистрибутив:

Соберите дистрибутив и скомпилируйте:

К оманда make test является важной, поскольку она проверяет, работает ли модуль. Следует учитывать, что если эта команда выполняется во время установки Msql-Mysql-modules для проверки кода интерфейса, то сервер MySQL при этом должен работать, или же данный тест потерпит неудачу.

К аждый раз при установке нового выпуска MySQL полезно создать заново и переустановить дистрибутив Msql-Mysql-modules , особенно если замечаются такие симптомы, как смерть скриптов DBI после модернизации MySQL (имеется в виду coredump).

Е сли вы не обладаете правами установки модулей Perl в системном каталоге или локальных модулей Perl, то для вас окажется полезной следующая ссылка: https://www.iserver.com/support/contrib/perl5/modules.html

С ледует смотреть в рубрике Installing New Modules that Require Locally Installed Modules .

Установка ActiveState Perl на Windows

Д ля установки модуля DBD для MySQL под ActiveState Perl на Windows необходимо выполнить следующие действия:

Получить ActiveState Perl с https://www.activestate.com/Products/ActivePerl/ и установить его.

Открыть оболочку DOS.

Если это необходимо, то установить переменную HTTP_proxy. Например, можно попытаться сделать следующее:

Запустить программу PPM:

Установить DBI , если этого еще не сделано:

Если все прошло успешно, то запустить следующую команду:

Э ти команды должны работать по крайней мере с версией ActiveState Perl 5.6.

Е сли приведенные выше команды у вас не работают, то вместо этого необходимо установить драйвер MyODBC и подключить сервер MySQL через ODBC:

Perl Language Установка модулей вручную

пример

Если у вас нет прав на установку модулей perl, вы все равно можете их установить вручную, указав собственный путь, на котором у вас есть права на запись.

Fist, скачать и распаковать архив модулей:

Затем, если дистрибутив модуля содержит файл Makefile.PL , запустите:

или если у вас есть файл Build.PL вместо Makefile.PL :

Вы также должны включить путь модуля в переменную окружения PERL5LIB , чтобы использовать его в своем коде:

Быстрый старт в Perl

Perl — высокоуровневый интерпретируемый динамический язык программирования общего назначения, созданный Ларри Уоллом, лингвистом по образованию [Wikipedia] . Появился в 1987 году.

Этот язык программирования богат возможностями по работе с текстом, что определяет основную область его применения — манипуляции с текстом, в частности парсинг.

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

Perl — это единственный язык, программы на котором выглядят одинаково до и после RSA-шифрования.

На момент написания этого материала актуальной версией интерпретатора является 5.22.0. Perl 6 готовится к релизу в 2015 году, но еще недостаточно документирован.

Язык программирования Perl крайне не рекомендуется брать в качестве языка для знакомства с программированием. Если вы абсолютный новичок — лучше начните с чего-нибудь менее губительного для вашего неокрепшего сознания. Серьезно, вот что говорил об этом языке Йон Риббенс:

PHP — это маленькое зло, созданное некомпетентными новичками, в то время как Perl — это большое и коварное зло, созданное умелыми, но извращёнными профессионалами.

К слову сказать, с PHP начинать тоже не стоит. А теперь ближе к делу.

Среда исполнения

На данный момент Perl официально поддерживается тремя ведущими платформами: Mac OS X, Unix и Windows. На первых двух из них среда исполнения Perl является предустановленной, и ее версию можно узнать через команду perl -v (свежую версию можно скачать здесь), а для операционных систем семейства Windows интерпретатор Perl доступен для скачивания на этой странице. Рекомендуется выбирать ActivePerl (дистрибутив от ActiveState) как самый распространенный.

Интегрированная среда разработки (IDE)

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

Padre, the Perl IDE

Мультиплатформенная легковесная среда разработки, созданная специально для Perl и удобная для новичков. Помимо традиционных подсветки синтаксиса и автодополнения, имеет также встроенные инструменты рефакторинга. Кстати, Padre сама написана на Perl 5.

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

Инструкция по установке на официальном сайте. Перед установкой вам необходимо иметь на компьютере Eclipse (версии, не ниже 3.6), среду исполнения Java (JRE) и интерпретатор Perl (инструкции по его установке даны выше).

Об установке дополнительных плагинов для EPIC можно почитать здесь.

Текстовые редакторы

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

  • KomodoEdit — урезанная версия коммерческой среды разработки Komodo IDE, разрабатываемая ActiveState (той самой, которая поддерживает дистрибутив ActivePerl), располагает функциями автодополнения, подсветки синтаксиса, множественных курсоров и подсказок из документации;
  • Vim — текстовый редактор, интерфейс которого может оказаться непривычным для Windows-пользователя; поддерживает подсветку синтаксиса;
  • Sublime Text — один из самых инструментов редактирования исходного кода с подсветкой синтаксиса, автодополнением и т.п., функционал которого расширяется множеством существующих плагинов;
  • Notepad++ — легковесный текстовый редактор, отличающийся наиболее корректной, после KomodoEdit, подсветкой синтаксиса; функционал может быть расширен плагинами, однако специально для Perl их существует довольно мало.
Мастер Йода рекомендует:  Мехмет Ялчиндаг стал главой совета директоров Яндекс.Турция

CodeGround

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

Первый «Привет, мир!» на Perl

Традиционно предлагаем начать знакомство с новым языком со всем хорошо известной программы:

Сохраните эту строку в файле hello.pl и запустите только что созданную вами программу командой:

Однако прежде убедитесь, что исполняемые файлы Perl есть среди ваших переменных среды (переменных окружения), а также в том, что вы вызывается perl из папки с исходным файлом hello.pl . В случае успеха, вы увидите ожидаемое «Hello, world!»

Поздравляем, вы начали писать на Perl!

А дальше — в путь…

Отличное англоязычное руководство по языку программирования Perl для быстрого старта вы можете найти на сайте tutorialspoint.com. Помимо этого, существует официальный обучающий ресурс — learn.perl.org.

Среди русскоязычных руководств отметим перевод мультиязычного Учебника Perl. В нем переведены не все главы, однако в качестве основы ресурс вполне пригоден. Другое руководство по азам на русском вы можете найти здесь.

Если же вам не по душе изучение посредством чтения, вы можете посмотреть видео-уроки на YouTube в составе следующих плейлистов:

Если вам удастся найти хорошие видео-уроки по Perl на русском языке, обязательно напишите нам об этом в комментарии к этой статье или на почту chief@tproger.ru.

Естественно, вам не обойтись без официальной документации. Скачать оффлайн-версию в HTML и PDF формате можно на этой странице.

Среди книг для начала и продолжения обучения отметим:

  • «Изучаем Perl», Рэндал Л. Шварц, Том Феникс, Брайан Д Фой (июнь 2011);
  • «Modern Perl», chromatic (2014).

Список рекомендуемых к прочтению книг вы можете найти также здесь.

Спасибо за внимание и успехов в изучении Perl!

Установка Perl

Pers.narod.ru. Perl. Установка Perl под Windows

Прекрасный язык CGI-программирования Perl, к сожалению, почти вытеснен PHP. Тем не менее, ничего красивее и удобнее для обработки строк и текстовых файлов я не знаю по сей день, и иногда проще «реанимировать» старый скрипт, чем делать то же самое средствами PHP или других языков. С помощью этой небольшой статьи Вы сможете скачать, установить и настроить Perl на локальной Windows-машине (на момент написания статьи это была Windows XP, но, думаю, всё будет работать и в более новых версиях), а также решить типичные проблемы, связанные с закачкой Perl-скриптов на хостинг.

1. Во-первых, нужно иметь установленный локальный сервер под Windows (можно, разумеется, установить Apache, но мне обычно хватало Internet Information Services — встроенного в Windows локального сервера). О том, как установить IIS, читайте в этой статье.

2. После установки IIS скачаем и установим Active Perl под Windows, надёжнее всего это сделать с официальной страницы: https://www.activestate.com/activeperl/, размер архива до 20 Мб. Во избежание проблем ставьте Perl в корень диска c: или d: , так, чтобы его папкой стала c:\Perl ( d:\Perl ).

3. Привяжем к IIS типы файлов Perl’а. Для этого зайдём Пуск, Администрирование, Internet Information Services (или Пуск, Выполнить, %SystemRoot%\system32\inetsrv\iis.msc , если вдруг нет такого меню), раскроем список Web-служб локального компьютера до уровня локального Web-сервера, нажмём на нём правую кнопку мыши и выберем «Свойства» (см. рис.)

В окне «Свойства» на вкладке «Документы» нажимаем кнопку «Добавить» и добавляем в список имён документов по умолчанию (опция «Задать документ, используемый по умолчанию» включена) имя index.pl . На вкладке «Домашний каталог» проверяем, что в списке «Разрешен запуск:» выбран пункт «Сценарии и исполняемые файлы», нажимаем кнопку «Настройка» в окне «Настройка приложения» делаем следующие добавления в список «Сопоставление приложений»:
Исполняемый файл: c:\Perl\bin\perl.exe «%s» %s
Расширение: .pl
Команды (сократить до): GET,HEAD,POST (можно оставить и «все команды»)
Включена опция «Проверка наличия файла».

Аналогично для расширения .plx можно сделать отдельную запись, назначив исполняемым файлом строку c:\Perl\bin\perlis.dll . Хотя я ставил это и на расширение .pl , всё равно всё работало.

Для надёжности можно перезапустить сервер IIS (из меню, показанного на рисунке выше, выбрать «Остановить», затем «Пуск»).

4. Проверим работу на тестовом файле. В папке C:\Inetpub\wwwroot\ (корень нашего Web-сервера) создадим файл с именем test.pl и следующим содержимым:

В адресной строке браузера выполним https://127.0.0.1/test.pl

На экране строка Hello, Perl! ? Поздравляю, всё работает. Если что-то не так — во-первых, разбираемся с правами на файлы (в той же статье п. 3-5), во-вторых, проверяем, разрешает ли IIS выполнение файлов в корне сервера (помните, выше мы выбирали пункт «Сценарии и исполняемые файлы»?), в-третьих смотрим, нет ли ошибки в пути к интерпретатору Перла (назначение на тип файла .pl).

Разумется, скрипты можно размещать в любых папках, вложенных в wwwroot , тогда в пути к скрипту на локалхосте добавится путь по дереву папок, начиная с корня сервера — например, https://127.0.0.1/cgi-bin/test2.pl для скрипта test2.pl , расположенного локально в папке C:\Inetpub\wwwroot\cgi-bin (по умолчанию серверные скрипты, кстати, должны располагаться как раз в ней).


Типовые проблемы с Perl-скриптами на хостинге

Предполагается, что Вы закачиваете скрипты на сервер Интернет через службу передачи файлов FTP любым FTP-клиентом, имеющим необходимый минимум настроек. Мне лично в большинстве случаев хватает клиента, встроенного в Far Manager, поэтому скажу несколько слов о работе с FTP его средствами. Нажимаем Alt+F1 или Alt+F2 , выбираем под списком дисков FTP. Если нужного соединения в панели ещё нет, создаём его нажатием Shift+F4 . Обычно достаточно ввести в первое поле окна «Ввод адреса FTP» строку вида ftp://пользователь:пароль@сервер:порт/папка , например, ftp://misha314:pg0_xE1@ftp.narod.ru для пользователя сервиса Народ.Ру с логином misha314 и паролем pg0_xE1 . Платные хостинги тем более обычно предоставляют данные для доступа к FTP. Для многих серверов также нужно выставить опции «Пассивный режим», в целях безопасности рекомендуется также «Использовать Firewall», «Расширенное окно команд» включено по умолчанию, так что пусть так и будет. Введя данные, нажимаем «Сохранить» и соединение сохраняется в панели. Перейдя по его ссылке, теперь мы можем закачивать файлы на сервер, создавать там папки и менять права доступа к этим объектам. Как раз последний шаг обычно создаёт проблемы, давайте вкратце обсудим, как меняются и что означают эти самые права. Для смены прав в панели FTP Far Manager’а выделите нужные файлы клавишей Ins и нажмите Ctrl+A . Появится окно как на рисунке:

Права доступа к файлам действуют во всех нормальных операционных системах (я не про Windows, а про Unix-совместимые системы, которые обычно стоят на серверах Интернет, куда Вы закачиваете файлы) и разделяются на три категории:

  • права владельца файла (u);
  • права группы (g);
  • права всех остальных пользователей (o).

Именно в этом порядке на рисунке показаны 3 группы переключателей.

В каждой категории можно установить или снять 3 вида прав:

  • R — право на чтение;
  • W — право на запись;
  • X — право на исполнение.

Права доступа обозначаются так же цифрами:

  • 4 — читать (R),
  • 2 — записывать (W),
  • 1 — исполнять (X),
  • 0 — ничего нельзя делать.

На самом деле это не просто цифры, а двоичные коды комбинаций RWX , но для простоты сойдёт и так. Сумма этих цифр и показывает права доступа. Вот основные варианты:

  • 7 = 4 + 2 +1 (полные права, все чекбоксы включены),
  • 6 = 4 + 2 (чтение и запись, включены R, W, выключен X),
  • 5 = 4 + 1 (чтение и выполнение, включены R, X, выключен W),
  • 4 = 4 + 0 + 0 (только чтение),

и т.д. для каждой из 3 категорий. В итоге получается, что права 777 обозначают, что и владелец, и группа пользователей, к которой он относится, и любой сторонний пользователь имеют полный доступ к этим файлам. Как в Windows с правами администратора. Поэтому ни один нормальный скрипт таких прав не потребует. А требуется обычно 755 (положение переключателей XXX X0X X0X ) для папок и исполняемых файлов, в том числе, скриптов с расширением .pl , и 644 ( X0X X00 X00 ) или 744 ( XXX X00 X00 ) для всех остальных файлов. Теперь, надеюсь, Вы сможете понять фразу «поставить права 755». Кстати, какие права на рисунке? Правильно, 644.

Итак, всё, что потребуется — создать подключение FTP, закачать в нужную папку (хостер обычно сообщает, какую, а корневая папка Вашего сервера уже создана) файлы с расширением .pl , поставить на них и вложенные папки права 755, на прочие файлы — 644 и набарть URL-адрес нужной страницы? Как бы ни так. Есть ещё куча нюансов, ради них-то я и начал этот раздел.

1. Закачивать файлы с расширением .pl следует только как текстовые (включить флажок «Текстовый режим» окна «Передача файлов» Far Manager’а). Иначе рискуете получить внутреннюю ошибку сервера с кодом 500. Дело в том, что в Windows и DOS в конец каждой строки текстового файла добавляется по 2 символа — CR (возврат каретки, код символа 13) и LF (перевод строки, код 10), а в Unix-совместимых системах строка заканчивается единственным символом с кодом 10. Вариант передачи «Текстовый режим» как и раз и убирает лишние символы CR в конце строк. На самом деле мешает символ 13 только в конце первой строки Perl-скрипта —

Эта строка обозначает путь к интерпретатору Perl, на Windows-машине она ничего не делает, а вот при размещении на сервере необходима. Если файл не передан как текстовый, интерпретатор Перла просто воспринимает код 13 как часть пути и не может запустить скрипт. Думаю, не надо пояснять, что бинарные файлы (картинки, базы данных, видео и т.п.) ни в коем случае нельзя закачивать как текст — Вы просто испортите файл.

2. Кстати, эта строка не обязана быть такой как выше. На конкретном хосте может быть и

и что-нибудь ещё. Поэтому, если скрипт не работает, во вторую очередь уточните по документации или у админа путь к интерпретатору Перла.

3. Третье — проверьте права на файлы, как рассказано выше. На многих хостингах просто отключены из соображений безопасности права 777, а разрешено только 755 и т.д.

4. Perl-скрипт должен полностью формировать документ HTML вместе с HTTP-заголовками. В простом переводе это означает, что первой в теле скрипта должна печататься оператором print или echo строка

— именно так, с двумя переводами строки \n в конце.

5. Ошибку сервера 500 с сообщением в логе вроде «Premature end of script headers» может породить и синтаксическая неточность где-нибудь глубоко в недрах скрипта. Я, например, однажды бился часа 2, пока не нашёл примерно в 1000-й строке текста конструкцию вида

вместо требуемой правилами языка

— фигурные скобки в if оказались обязательны. после этого «мёртвый» скрипт заработал безупречно.

6. Многие скрипты имеют в отдельном файле с именем вроде config.pl или просто в начале текста настройки вида

Для работы скрипта обычно нужно корректно их установить. Если помнить, что в Unix, в отличие от Windows, в записи путей используется прямой слэш / , а не обратный \ , обычно это не так сложно. Тем более, что авторы снабжают настройки комментариями. Всё, что следует после символа «решётки» # до конца строки и есть комментарий.

7. Кстати, при отладке чужих, да и своих скриптов, бывает нужно закомментарить сразу многострочный кусок кода. В стандарте Perl такой возможности, как многострочные комментарии, нет, но на самом деле почти везде работает конструкция

— бывает, очень помогает.

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

Мастер Йода рекомендует:  Пишем скрипт гостевой книги PHP

Как установить perl-модули в Windows?

Я загрузил некоторые модули perl из CPAN. Как правило, мы делаем два шага ниже, чтобы установить его.

Но это не работает в Windows.

Я использую ActivePerl, что мне делать, чтобы установить сторонние модули?

Мне удалось запустить две команды ниже:

И я вижу, что FAQ.pod и XXX.pm копируются в какую-то папку. Но вопрос в том, что я видел, что эти 2 файла существуют до того, как я запустил любую команду. Они находятся только в загруженном zip файле. Так почему мне все еще нужно запускать команды make?

Так почему мне все еще нужно запускать команды make?

Большая часть того, что делает установщик (для модуля Perl или иначе), копирует файлы. Это не значит, что все это происходит. Чтобы назвать несколько других:

  • Получение параметров установки от пользователя.
  • Проверка отсутствующих зависимостей.
  • Установка отсутствующих зависимостей.
  • Определение правильных каталогов, в которые устанавливаются файлы.
  • Настройка модуля для конкретной системы или сборка Perl.
  • Генерация полученных файлов.
    • Компиляция компонентов C (XS).
    • Создание документации.
    • Выполнение скриптов в Perl выполняется самостоятельно.
  • Выполнение тестов.
  • Установка разрешений.
  • и т.д

Иногда вам нужно выйти в Microsoft и загрузить исполняемый файл nmake, чтобы вы выполнили «make». Но я помню клиент PPM GUI, который тоже должен помочь вам.

Когда я использовал функцию activestate, я использовал PPM, а затем использовал CPAN, когда у PPM не было необходимого мне модуля. Таким образом, мне удалось установить Catalyst и DBIx :: Class и работать с окном, используя локальный сервер Mysql и SQL-сервер для запросов удаленного хранилища данных, около 2007 года.

Это потребовало немного больше усилий, чем установка Unix, но иногда мы не можем выбирать нашу ОС.

Веб-библиотека

Поиск

Установка Perl

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

А если Perl уже установлен?

Перед тем как перейти к решительным действиям по установке, следует проверить, не установлен ли уже Perl на вашем компьютере. Учтите, что интерпретатор Perl входит в стандартную поставку некоторых версий UNIX. В Windows NT программа Perl является частью Windows NT Resource Kit. Чтобы выяснить, имеется ли в вашей системе правильно установленная версия интерпретатора Perl, придется обратиться к командной строке.

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

Иногда вместо символа $ можно увидеть символ % или bash%, что, по сути, одно и то же. После регистрации в системе оболочка выводит приглашение командной строки или приглашение оболочки. На первых нескольких занятиях вы будете взаимодействовать с Perl посредством командной строки.

Чтобы проверить, правильно ли установлен Perl в вашей системе, наберите следующую команду (символ $ набирать не надо):

Если на вашем компьютере установлена система Windows, выяснить, правильно ли установлен у вас Perl, можно следующим образом. Запустите в окне сеанс MS-DOS, как показано на рис. 1.1. В командной строке наберите (приглашение С:> набирать уже не нужно):

Если в ответ на эту команду будет выведен номер версии интерпретатора не ниже 5, то волноваться не о чем. Если же DOS выведет сообщение об ошибке Bad command or file name (Имя команды или файла указано неправильно), Perl нужно будет установить или переустановить (если используется версия ниже 5).

Проверить, установлен ли Perl на компьютере Macintosh, можно с помощью команды File Find (Command-f) — При этом в качестве критерия поиска необходимо ввести строку MacPerl, как показано на рис. 1.2. Если приложение найдено, запустите его и выберите в меню Apple команду About MacPerl. Если у вас установлена версия не ниже 5.2.0 (Patchlevel 5.004), то все в порядке, в противном случае — придется установить новую версию MacPerl.

Установка Perl в Windows 95/98/NT

Как часто бывает в жизни, для инсталляции Perl в Windows существует два способа — простой и сложный. Если вы знакомы с компилятором С и сопутствующими ему средствами разработки, такими как make-файлы, оболочки, — можете сами скомпилировать Perl из имеющихся исходных файлов. Они свободно распространяются, и вы можете их просмотреть и даже модифицировать на свой вкус. Если вы заинтересовались этим вопросом, обратитесь к материалу 16-го занятия, «Сообщество Perl», за необходимой информацией. Впрочем, стоит сразу отметить, что ручная инсталляция Perl в Windows не под силу рядовому пользователю.

Второй способ установки действительно не вызывает никаких сложностей. Компания ActiveState Tool распространяет Perl в виде приложения Windows, которое устанавливается подобно остальным приложениям Windows. На рис. 1.3 показано окно программы установки. Данный интерпретатор Perl распространяется на условиях общей лицензии сообщества ActiveState. Ознакомиться с лицензией можно по адресу https://www.activestate.com.

Установка Perl в UNIX

Для установки Perl в UNIX у вас должны быть две вещи. Прежде всего, полный набор исходных файлов. Последнюю версию исходных файлов всегда можно загрузить из раздела Download Web-сервера https://www.perl.com. Там вы найдете сразу несколько версий, но одна из них обязательно будет помечена как «Stable» или «Production». Вам также потребуется компилятор ANSI С. Не переживайте, если не знаете, что это значит. Программа конфигурации Perl сама проверит на наличие указанного компилятора, и в случае его отсутствия вы сможете установить скомпилированную версию, как описано в конце раздела.

Набор исходных текстов Perl содержится, как правило, в файле с именем stable.tar.gz. Перед установкой Perl его следует разархивировать. Для этого введите следующие команды:

$ gunzip stable.tar.gz
$ tar xf stable.tar

Для выполнения этих команд потребуется какое-то время. Если у вас нет программы разархивации gunzip, можете загрузить ее с сервера https://www.gnu.org. Программный пакет называется gzip. По окончании разархивации наберите в командной строке следующую команду:

При этом будет запущена программа Configure, которая задаст вам много вопросов. Если вы не знаете ответов на большинство из них — ничего страшного, просто нажмите клавишу . Вам вполне подойдут параметры, принятые по умолчанию. Как правило, в большинстве UNIX-систем установка Perl не вызывает каких-либо проблем. После того как программа Configure завершит свою работу, введите команду

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

$ make test
$ make install

Первая команда позволяет удостовериться, что компиляция Perl прошла нормально и он готов к установке. Чтобы запустить вторую команду, вам придется зарегистрироваться в системе как root, для которого приглашение обычно имеет вил #. Вторая выполнит установку Perl в системные каталоги.

Если команда make install корректно выполнила свою работу, вы можете окончательно убедиться в том, что установка Perl прошла успешно, повторно набрав в командной строке команду

Если команда сработает — примите поздравления!

Установка Perl на компьютерах Macintosh.

Свежую версию Perl для Macintosh (MacPerl) можно загрузить с Web-сервера https://www.perl.com. Дистрибутивные файлы находятся в каталоге https://www.perl.cora/ CPAN/ports/mac. Загрузите файл appl.bin из этого каталога, разархивируйте его программой Stufflt Expander, а затем запустите программу установки.

После этого вы должны активизировать программу для чтения документации Perl — Shuck, которая входит в комплект поставки MacPerl. Пользователи MacOS 8 могут сделать это с помощью Internet Control Panel, выбрав команду Advanced » File Mapping и ассоциировав расширение .pod с приложением Shuck. Это позволит получить удобный доступ к документации. Кроме того, полезно ассоциировать расширения .ph, .pi, .plx, .pm, .cgiи .xs, обычно назначаемые программой на Perl, с приложением MacPerl. Установите для них тип файла TEXT.

Пользователи MacOS 7 для выполнения описанных выше действий должны воспользоваться утилитой InternetConfig. В internetConfig выберите команду Helpers и свяжите расширение .pod с приложением справки Shuck, а также свяжите все расширения Perl с приложением MacPerl.

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

А теперь обратите внимание: в комплект поставки Perl входит полная версия текущей документации по языку и интерпретатору Perl.

Да, да! Вы не ошиблись. Устанавливается именно полная версия документации. Причем бесплатно! В поставку Perl версии 5.6 входит более 1 700 страниц документации! Документация содержит справочный материал, учебники, список часто задаваемых вопросов и ответов на них (так называемый FAQ), историю развития и даже примечания, касающиеся внутреннего устройства Perl.

Получить доступ к документации можно несколькими способами. В Windows и UNIX вместе с Perl инсталлируется утилита perldoc. Ее можно использовать как инструмент поиска нужного раздела документации и получения форматированного вывода. Для запуска perldoc необходимо перейти в окно командной строки. В следующем примере мы покажем действие утилиты в системе UNIX, но в DOS все происходит точно так же.

Разделы руководства состоят из отдельных частей, которым присвоены имена, например: perlfunc (функции Perl), perlop (операторы Perl) или perlfaq (список часто задаваемых вопросов по Perl). Для доступа к странице руководства perlfunc введите команду perldoc perlfunc. Названия всех разделов руководства перечислены на странице руководства perldoc perl.

Чтобы найти в руководстве функцию по имени, нужно запустить утилиту perldoc с ключом -tf. В следующем примере показано, как найти в руководстве описание функции print:

$ perldoc -tf print

В FAQ собраны часто задаваемые вопросы, касающиеся Perl. Люди, изучающие Perl, задают одни и те же вопросы. Поэтому, чтобы сохранить время и избавить их от множества проблем, все эти вопросы собраны в файлы FAQ. Чтобы найти нужную тему в FAQ, воспользуйтесь ключом -q, после него укажите слово, которое может находиться в заголовке FAQ. К примеру, если вы хотите узнать о поддержке Perl, введите следующую команду:

$ perldoc -q support

В результате выполнения этой команды отобразится страница FAQ Who supports Perl? Who develops it? Why is it free?

Другие способы доступа к документации

Во время установки Perl в UNIX-системе вам предоставляется возможность установить документацию в традиционном man-формате. При этом стандартная документация по Perl будет конвертирована в формат man и помещена в соответствующий каталог. В результате для доступа к документации по Perl можно будет использовать и программу perldoc, и программу man, как это обычно принято в UNIX:

При установке в Windows пакета ActiveState Perl страницы справочного руководства конвертируются в формат HTML, в результате их можно просмотреть в любом Web-броузере, который поддерживает фреймы. При стандартной установке файлы документации находятся в каталоге C:Perlhtml. Если вы установили Perl в другой каталог, ищите файлы документации в подкаталоге html.

В пакет MacPerl входит утилита Shuck, которая находится в папке MacPerl. Используйте ее для поиска и чтения разделов документации, как показано на рис. 1.4.

А если документация отсутствует?

Существуют лишь две причины, по которым вы не сможете найти документацию. Во-первых, нужно знать, где искать. Утилита perldoc может быть расположена в каталоге, отсутствующем в списке путей оболочки. В этом случае найдите программу perldoc и добавьте путь к ее каталогу в переменную окружения оболочки PATH. Во-вторых, документация могла быть нечаянно или по злому умыслу удалена. Любая установка Perl обязательно содержит документацию, более того, Perl никогда не инсталлируется без документации. Ее отсутствие свидетельствует о том, что пакет Perl или с самого начала неправильно установлен, или впоследствии был поврежден. В этом случае, вероятно, вам (или системному администратору) придется переустановить Perl. Документация является важной составляющей среды разработки Perl и без нее некоторые части Perl просто не будут функционировать.

Добавить комментарий