Одна голова хорошо, а две не бывает. Народная мудрость
Помимо описанных в предыдущих наблах преимуществ (и недостатков), у Perl есть одно большое достоинство перед PHP: существует огромное количество готовых библиотек (модулей). Они призваны облегчить труд программиста. Модули очень легко устанавливать, чего не скажешь о библиотеках для Apache-версии PHP последние может устанавливать только привилегированный системный администратор.
Если вы работаете (или отлаживаете скрипты) в Windows под ActivePerl, установка будет очень проста. Необходимо проделать следующие действия.
Прежде всего найдите требуемый модуль в Интернете. Обычно это файл с расширением ppd.
Почему «ppd»?.. Чтобы никто не догадался.
Вот список наиболее популярных каталогов модулей для ActivePerl (взят из документации):
Затем перейдите в режим командной строки (или запустите Far, если синий цвет вам нравится больше) и наберите:
ppm install http://сервер/путь/к/модулю.ppd
Необходимо заметить, что в этот момент вы должны быть подключены к Интернету, потому что ppd-файл обычно содержит лишь ссылку на архив модуля, который будет выкачан и установлен автоматически.
Теперь сидите и ждите, пока модуль не скачается и не установится (если повезет, то без «не»).
В Unix, как обычно, все несколько сложнее. Вот требуемые действия.
Найдите в Интернете нужный модуль. Обычно это файл с расширением tar.gz.
Почему два расширения?.. Чтобы в DOS не работало.
Очень большой архив модулей (практически всемирный) можно найти по адресу http://www.cpan.org (запаситесь глазными каплями и изучите этот сайт очень внимательно он вам еще не раз пригодится). Ну и кое-что вот тут: http://web.dklab.ru/chicken/mod/cpan.
Распакуйте содержимое архива в любую удобную директорию (после распаковки создастся директория с тем же именем, что и у модуля):
tar zxf СкачанныйМодуль.tar.gz
cd СкачанныйМодуль
Если вы мегаломаньяк с системными привилегиями (root-доступом), вы, наверное, захотите установить только что скачанную библиотеку в системную директорию модулей, чтобы она была доступна всем пользвателям. Для этого наберите:
perl Makefile.PL
make
make test
make install
Если какая-то из команд закончилась неудачно, значит, с модулем что-то не так, и его автора придется проучить (например, по электронной почте известным всем способом).
Будьте особенно осторожны на этом важном шаге. При использовании «известного всем способа» почти все администраторы серверов иногда делают кое-что кое-кому.
Если вы обычный хостинг-пользователь и хотите установить модуль к себе в локальную директорию (при этом у вас есть Telnet- или SSH-доступ к серверу), выполните команды:
perl Makefile.PL prefix=$HOME/библиотеки
make
make test
make install
После выполнения последней команды в вашем домашнем каталоге создастся директория библиотеки, а в ней какие-то дополнительные поддиректории. Но как же Perl найдет в этом лабиринте путь к нужному модулю?.. Очень просто: вы сами укажете его в первой строчке запускаемого скрипта:
#!/usr/bin/perl -w
use lib ($ENV{HOME}||"$ENV{DOCUMENT_ROOT}/..").
'/библиотеки/lib/site_perl/5.6.0/i386-linux';
Здесь подразумевается, что модуль (ищите файл с расширением pm в зарослях только что созданных директорий) установился в вашем домашнем каталоге в директорию библиотеки/lib/site_perl/5.6.0/i386-linux.
Возможно, в других операционных системах путь будет выглядеть несколько иначе. Например, там может не быть директории i386-linux или 5.6.0. В этом случае вам придется скорректировать путь вручную, глядя на реальную структуру каталогов.
Обратите внимение на то, как обрабатываются ситуации, когда переменная окружения HOME недоступна (что почти всегда бывает в CGI-скриптах). Встает задача определения домашнего каталога сервера, и нам нужно ее во что бы то ни стало решить. В этом случае мы «зацепляемся» за переменную DOCUMENT_ROOT, то есть директорию, в которой сервер ищет документы. У большинства хостинг-провайдеров эта директория располагается непосредственно в домашнем каталоге, и полный путь к ней выглядит, например, так: /home/dklab/www. Поэтому, присоединив к /home/dklab/www часть «..», мы получаем /home/dklab, что и означает домашний каталог пользователя. (Реально на этом сайте структура каталогов несколько иная, так что DOCUMENT_ROOT равна /home/dklab/domains/www. В этом случае путь к домашнему каталогу будет "$ENV{DOCUMENT_ROOT}/../..".)
Если вы не получаете удовольствие от головной боли, настоятельно не рекомендую указывать путь к домашнему каталогу явно. Лучше вычисляйте его во время работы, как описано выше. Хотя код от этого и становится длиннее, зато он гораздо лучше переносим между хостинг-провайдерами, а также может использоваться на разных сайтах без изменения.
Надо для справедливости заметить, что Unix-способ иногда можно использовать и в Windows. Но для этого необходимо:
установить Microsoft Visual Studio C/C++;
использовать везде nmake вместо make;
устанавливать Perl в директорию, в имени которой нет пробелов (последняя ошибка, к сожалению, так и не была исправлена разработчиками ActivePerl). Например, используйте C:/Perl.
Собственно, это все. Теперь вы можете вернуться к предыдущей набле и установить модуль CGI::WebOut. Для того, чтобы двинуться к следующей набле.
Рекламный блок
Важное объявление:
автор категорически против копирования и распространения в Интернете всех статей «Куроводства» с возрастом, меньшим 6 месяцев. Печальный опыт «расползания» чрезвычайно устаревших ошибочных версий статьи про Apacheдействительно объясняет такое решение.
Орфография на «Куроводстве»:
если вы заметили орфографическую, стилистическую или другую ошибку на этой странице, просто выделите ошибку мышью и нажмитеCtrl+Enter. Выделенный текст будет немедленно отослан вебмастеру, а Вы даже ничего и не заметите настолько быстро все произойдет.
На заметку:
если вы уже вскипели насчет дизайна этой страницы, то присмотритесь повнимательнее к названию, почитайте FAQ, сходите по лебедевским
местам, как это уже предлагалось выше. Можно ли считать пародию плагиатом? Надеюсь, что нет.