В этом разделе FAQ даются ответы на вопросы о том, где найти исходники и документацию Perl, поддержку, и сопутствующие вещи.
Стандартная версия perl (та, что поддерживается командой разработки perl) распространяется в виде исходников. Вы можете загрузить ее по адресу http://cpan.org/src/ в стандартном для Интернета формате (архив POSIX tar, сжатый gzip).
Perl собирается и запускается на немыслимом количестве разных платформ. Теоретически, поддерживаются все нынешние потомки Unix (это родная платформа для perl), а также другие системы, такие как VMS, DOS, OS/2, Windows, QNX, BeOS, OS X, MPE/iX и Amiga.
Бинарные версии для некоторых проприетарных платформ есть на http://cpan.org/ports/. Так как они не входят в стандартную дистрибуцию, то они могут тем или иным образом образом отличаться (и действительно отличаются) от основного порта perl. Вам нужно посмотреть соответствующие примечания, чтобы узнать, в чем различия. Они могут быть как положительными (вроде расширений для конкретных платформ, не поддерживаемых исходной версией perl), так и отрицательными (например, порт может основываться на менее свежей версии perl).
Для Windows уже собранную версию Perl можно бесплатно получить у ActiveState.
Для системы Solaris (как на архитектуре Intel, так и на SPARC) бинарные файлы со многими утилитами, в том числе Perl, есть на Sunfreeware.com.
Если у вас нет компилятора C — производитель системы почему-то не предоставил — то лучше взять из Сети бинарную версию gcc и собрать perl с ее помощью. В CPAN есть бинарные файлы только для тех систем, для которых невероятно сложно раздобыть свободные компиляторы — не для Unix.
Полезные ссылки:
Если нужен perl для Win16, попробуйте djgpp-порт от Ласло Молнара, к которому прилагаются ясные инструкции по установке.
Если у вас нет компилятора C, то вы обречены, и производитель вашей системы должен быть принесен в жертву богам Солнца (Sun gods). Но это вам не поможет.
Сначала вам нужно взять бинарную версию gcc. Где ее искать, прочитайте в USENET'овских FAQ по вашей операционной системе.
Хотя можете поискать в Сети подходящий уже собранный бинарный файл с Perl (или с компилятором C):
Для Windows Vanilla Perl и Strawberry Perl идут в комплекте с компилятором C. Собранный и готовый к использованию Perl — ActiveState.
Для Sun бинарные файлы с самыми популярными приложениями, в том числе и с Perl, есть на Sunfreeware.com.
Скорее всего, вы забыли библиотеки, или пути к библиотекам различаются. Вам действительно нужно собрать полную версию на том компьютере, где она будет использоваться, а потом выполнить make install. Практически все остальные способы обречены на провал.
Чтобы быстро проверить, что всё на месте, можно вывести зашитые в собранном perl пути @INC, по которым интерпретатор ищет библиотеки:
% perl -le 'print for @INC'
Если эта команда выдает какие-либо пути, которых нет в вашей системе, то может понадобиться поместить соответствующие библиотеки в нужные места, либо создать символьные ссылки или синонимы. @INC также включается в вывод команды
% perl -V
Прочитайте файл INSTALL, включенный в дистрибуцию. В нем подробно описано, что делать с большинством особенностей систем или архитектур, не обрабатываемых скриптом configure.
CPAN означает «Comprehensive Perl Archive Network», то есть «Всеобъемлющая сеть архивов Perl». Это многогигабайтный архив, дублирующийся на сотнях машин по всему миру. CPAN содержит исходный код, дополнительные порты, документацию, скрипты и многие модули и расширения от сторонних разработчиков, созданных для всего чего угодно, от работы с коммерческими СУБД или с мышью и клавиатурой, до обхода сетевых ресурсов и CGI-скриптования. Главный сайт CPAN — http://cpan.org/; т. н. «Коммутатор CPAN» выберет через DNS наиболее близкое к вам зеркало. Хороший интерфейс к каталогу зеркал CPAN — http://mirror.cpan.org/.
Ответы на самые популярные вопросы о CPAN (и на вопрос о том, как организовать зеркало) есть в CPAN FAQ.
«CPAN/foo/bar/...» — это обозначение для имен файлов на сайтах CPAN. Здесь «CPAN» обозначает корневую директорию зеркала CPAN, а потом идет путь к файлу. Например, если вы пользуетесь ftp://ftp.funet.fi/pub/languages/perl/CPAN, то файл CPAN/misc/japh можно загрузить по адресу ftp://ftp.funet.fi/pub/languages/perl/CPAN/misc/japh.
Учитывая, что, по состоянию на 2006-й год, в архиве более десяти тысяч модулей, вы можете найти подходящий модуль практически для чего угодно. Сейчас категории в CPAN/modules/by-category/ включают основные модули Perl; поддержку разработки; интерфейсы для операционных систем; работу с сетью и устройствами, межпроцессное взаимодействие; работу с файлами определенного типа; интерфейсы к базам данных; пользовательские интерфейсы; интерфейсы к другим языкам; имена файлов, файловые системы и защиту файлов; интернационализацию и локализацию; работу с WWW; утилиты для серверов и демонов; архивирование и сжатие; обработку изображений; почту и новости; управление трафиком; дескрипторы файлов и ввод-вывод; модули для Microsoft Windows и прочее.
Более полный список модулей по категориям смотрите на http://cpan.org/modules/00modlist.long.html или http://search.cpan.org/.
CPAN — бесплатный сервис, не связанный с O'Reilly Media.
Разумеется, нет. Ларри думает, что ему самому выдадут свидетельство (о помешательстве) до того, как свидетельство выдадут Perl.
Полная документация по языку прилагается к дистрибутиву Perl. Если у вас установлен Perl, то, скорее всего, установлена и документация; в близкой к Unix системе выполните man perl. Это приведет вас к другим важным страницам руководства, в том числе по установке $MANPATH. Если вы не в Unix-системе, то дело с доступом к документации может обстоять иначе; например, она может быть только в формате HTML. Все правильные установки perl содержат полную документацию.
Можете также попробовать perldoc perl, если в системе нет команды man, или она была удалена. Если это не работает, посмотрите в /usr/local/lib/perl5/pod.
В крайнем случае, документацию в формате HTML и PDF можно получить на http://perldoc.perl.org/.
О Perl написано много хороших книг (см. ниже).
Руководства, прилагающиеся к текущей или готовящейся к выходу версии Perl:
На тот момент, когда вы читаете FAQ, может добавиться что-то еще.
Другие полезные ссылки:
Perl посвящено несколько конференций:
Несколько лет назад comp.lang.perl была разделена на эти группы, а сама официально ликвидирована. Хотя эта группа может существовать на некоторых серверах новостей, использовать ее неразумно, потому как сообщения туда не появятся на серверах, которые соблюдают официальный список групп. Для тем, не имеющих более подходящей конференции, используйте comp.lang.perl.misc.
Также perl.org поддерживает шлюз USENET для списков рассылки Perl и соответствующий сетевой интерфейс; в Google Groups они доступны под названием perl.*. Прочие группы перечислены на http://lists.cpan.org/.
Для вопросов хорошо подходит сайт PerlMonks и список рассылки Perl Beginners.
Учтите, что люди на этих ресурсах не должны писать для вас код: вопросы по конкретным задачам или просьбы дать общий совет приветствуются, но вот просьбы кому-то бесплатно написать за вас программу — не очень.
Вы должны отправлять исходники в наиболее подходящую конференцию, но не стесняйтесь сделать копию для comp.lang.perl.misc. Если хотите сделать кросспост в alt.sources, то убедитесь, что соблюдаете их требования, в том числе не указываете alt.sources в заголовке «Followup-To».
Если просто ищете программное обеспечение, то сначала используйте Google, поиск по Google Groups и CPAN. Это быстрее и лучше, чем высылать запрос в группу новостей.
Доступен ряд книг по Perl и/или CGI-программированию. Некоторые из них хорошие, какие-то — удовлетворительные, но многие не стоят ваших денег. Список книг, местами подкрепленный обширными рецензиями, есть на http://books.perl.org/. Если тут не упомянута ваша книга, напишите на perlfaq-workers@perl.org.
Наиболее полный справочник по Perl, написанный создателем языка — «Programming Perl»:
Larry Wall, Tom Christiansen, Jon Orwant. Programming Perl («Книга верблюда»).
ISBN 0-596-00027-8. Третье издание, июль 2000 г.
(На английском; есть также переводы на несколько языков.)
Приложение к «Верблюду», включающее тысячи примеров из жизни, небольшие руководства и полные программы:
Tom Christiansen, Nathan Torkington. The Perl Cookbook («Книга барана»).
ISBN 0-596-00313-7. Второе издание, август 2003 г.
Если вы уже опытный программист, то «Книги верблюда» может быть достаточно. Иначе, смотрите «Книгу ламы»:
Randal L. Schwartz, Tom Phoenix, brian d foy. Learning Perl.
ISBN 0-596-10105-8. Четвертое издание, июль 2005 г.
Обучение можно продолжить с «Книгой альпаки», где в стиле «Книги ламы» изложены дополнительные сведения по написанию более серьезных программ:
Randal L. Schwartz, brian d foy, Tom Phoenix. Intermediate Perl.
ISBN 0-596-10206-2. Март 2006 г.
В «Addison-Wesley» и «Manning» тоже вышло несколько хороших книг по Perl вроде «Object Oriented Programming with Perl» Дамиана Конвея и «Network Programming with Perl» Линкольна Стейна.
Прекрасный магазин с дешевой технической литературой — Bookpool — там обычно дается скидка процентов в 30 и больше.
Далее приводится список книг по Perl (или в основном по Perl), которые авторы FAQ сочли полезными. Вы можете с ними не согласиться (надеемся, это не случится).
Larry Wall, Tom Christiansen, Jon Orwant. Programming Perl.
ISBN 0-596-00027-8. Третье издание. Июль 2000 г.
Johan Vromans. Perl 5 Pocket Reference.
ISBN 0-596-00374-9. Четвертое издание. Июль 2002 г.
James Lee. Beginning Perl.
ISBN 1-59059-391-X. Второе издание. Август 2004 г.
Andrew L. Johnson. Elements of Programming with Perl.
ISBN 1-884777-80-5. Октябрь 1999 г.
Randal L. Schwartz, Tom Phoenix, brian d foy. Learning Perl.
ISBN 0-596-10105-8. Четвертое издание. Июль 2005 г.
Randal L. Schwartz, brian d foy, Tom Phoenix. Intermediate Perl.
ISBN 0-596-10206-2. Март 2006 г.
brian d foy. Mastering Perl.
ISBN 0-596-52724-1. Июль 2007 г.
Sam Tregar. Writing Perl Modules for CPAN.
ISBN 1-59059-018-X. Август 2002 г.
Tom Christiansen, Nathan Torkington. The Perl Cookbook.
ISBN 1-56592-243-3. Август 1998 г.
Joseph Hall. Effective Perl Programming.
ISBN 0-201-41975-0. 1998 г.
Linchi Shea. Real World SQL Server Administration with Perl.
ISBN 1-59059-097-X. Июль 2003 г.
Damian Conway. Perl Best Practices.
ISBN: 0-596-00173-8. July 2005 г.
Mark-Jason Dominus. Higher Order Perl.
ISBN: 1558607013. Март 2005 г.
Scott Walters. Perl 6 Now: The Core Ideas Illustrated with Perl 5.
ISBN 1-59059-395-2. Декабрь 2004 г.
Jeffrey E. F. Friedl. Mastering Regular Expressions.
ISBN 0-596-00289-0. Второе издание. Июль 2002 г.
Lincoln Stein. Network Programming with Perl.
ISBN 0-201-61571-1. 2001 г.
Damian Conway. Object Oriented Perl.
ISBN 1-884777-79-1. Август 1999 г.
Dave Cross. Data Munging with Perl.
ISBN 1-930110-00-6. 2001 г.
Steve Lidie, Nancy Walsh. Mastering Perl/Tk.
ISBN 1-56592-716-8. Январь 2002 г.
Tim Jenness, Simon Cozens. Extending and Embedding Perl.
ISBN 1-930110-82-0. Август 2002 г.
Richard Foley. Perl Debugger Pocket Reference.
ISBN 0-596-00503-2. Январь 2004 г.
Richard Foley, Andy Lester. Pro Perl Debugging.
ISBN 1-59059-454-1. Июль 2005 г.
«The Perl Review» почти полностью посвящен Perl (хотя порой и вставляет в тексте замечания о другом языке). Еще есть немецкий журнал про Perl «$foo Magazin».
Среди журналов, которые часто публикуют хорошие статьи о Perl — «Unix Review», «Linux Magazine» и рассылка для членов ассоциации Usenix «login:»
Колонки Рэндала Шварца можно найти на stonehenge.com:
Первое (и долгое время — единственное) периодическое издание о Perl «The Perl Journal» включает руководства, демонстрации, примеры, анонсы, конкурсы, и многое другое. В «The Perl Journal» есть колонки о веб-разработке, базах данных, работе с Win32, графическом программировании, регулярных выражениях и работе с сетью. Еще он организует Конкурс непонятных исходников и Поэтический конкурс Perl. С ноября 2002 года «The Perl Journal» стал ежемесячным сетевым журналом, поддерживаемом читателями, и его выпуски подписчики могут загрузить в формате PDF. В 2006-м «The Perl Journal» объединился с интернет-версией «Dr. Dobbs Journal». Старые тексты «The Perl Journal» можно найти по адресу http://ddj.com/.
У весомой части модулей (Tk, CGI, libwww-perl) есть свои списки рассылки. Информацию о подписке смотрите в документации, которая прилагается к определенному модулю.
Полный перечень списков рассылки по Perl можно найти на http://lists.cpan.org/.
Поисковая машина Google теперь работает с архивами групп новостей.
http://groups.google.com/group/comp.lang.perl.misc/topics
Если есть вопрос, то наверняка кто-то его уже задавал в comp.lang.perl.misc. Для поиска требуется какое-то время и терпение, но обычно нужный ответ находится.
На деле, perl уже коммерческий: к нему прилагается лицензия, которую вы можете зачитать своему начальству. perl распространяется в строго определенных пакетах. Существует огромное пользовательское сообщество и обширная литература. Группы новостей comp.lang.perl.* и ряд списков рассылки практически мгновенно дают бесплатные ответы. Perl всегда поддерживался Ларри, множеством архитекторов и разработчиков программного обеспечения и несметным числом программистов, бесплатно создающих полезную вещь, облегчающую жизнь всем вокруг.
Однако такие аргументы могут не убедить начальство, требующее заключить сделку с компанией, которой можно будет предъявить претензии, если что-то пойдет не так. Или оно хочет иметь серьезные отношения и контрактные обязательства. Если это поможет, то дистрибутивы perl на красиво упакованных компакт-дисках можно найти в различных местах. Например, многие книги по Perl идут вместе с perl, ровно как и «O'Reilly Perl Resource Kit» (и в духе Unix, и в проприетарном духе Microsoft); свободные дистрибутивы Unix тоже включают perl.
(Отвечает Брайан Д. Фой)
Во-первых, убедитесь, что вы столкнулись с настоящей ошибкой.
Во-вторых, убедитесь, что вы столкнулись с настоящей ошибкой.
Если вы нашли ошибку в интерпретаторе perl или в одном из модулей стандартной библиотеки (которая идет вместе с Perl), вы можете использовать утилиту perlbug, которая прилагается к Perl (>= 5.004). Она собирает информацию об установке, чтобы включить ее в сообщение, а потом отправляет сообщение по нужному адресу.
Чтобы определить, прилагался ли модуль к вашей версии Perl, используйте модуль Module::CoreList. Он содержит информацию о модулях, которые идут с каждой версией Perl (а также об их версиях).
У каждого модуля CPAN есть баг-трекер на RT. Об ошибках можно сообщать на RT, либо через веб-интерфейс, либо по электронной почте. Для отправки сообщения почтой, используйте адрес bug-<название модуля>@rt.cpan.org. Например, чтобы сообщить об ошибке в Business::ISBN, пишите на bug-Business-ISBN@rt.cpan.org.
У некоторых модулей могут быть особые требования для отчетов по ошибкам — они могут пользоваться системами вроде SourceForge или Google Code, так что проверьте также и документацию конкретного модуля.
Perl.com — часть O'Reilly Network, подразделения O'Reilly Media.
«Perl Foundation» — это организация, пропагандирующая Perl и содержащая сайт http://www.perl.org/. Домен используется для базовых служб поддержки вроде списков рассылки и сайтов. Также есть много других специальных субдоменов для специальных тем вроде изучения Perl, новостей Perl, вакансий для программистов на Perl:
Perl Mongers размещает на домене pm.org службы, связанные с пользовательскими группами, в том числе их списки рассылок и сайты. Информацию о вступлении в группу или создании новой, а также о получении сервисов, смотрите на http://www.pm.org/.
http://cpan.org/ — «Всеобъемлющая сеть архивов Perl», дублирующийся на сотнях машин по всему миру архив программного обеспечения на Perl. См. выше ответ на вопрос «Что такое CPAN?».