Saturday, January 21, 2012

perlfaq2 — где получить и как изучить Perl http://beshenov.ru/perlfaq/2.html

perlfaq2 — где получить и как изучить Perl

В этом разделе FAQ даются ответы на вопросы о том, где найти исходники и документацию Perl, поддержку, и сопутствующие вещи.
Какие архитектуры поддерживает perl? Где его взять?
Где взять бинарную версию perl?
У меня нет компилятора C. Как собрать интерпретатор Perl?
Я скопировал бинарный файл perl с одной машины на другую, но скрипты не работают.
Я взял исходники и попробовал собрать, но появилось сообщение «gdbm/dynamic loading/malloc/linking/... failed». Как это исправить?
Какие есть модули и расширения для Perl? Что такое CPAN? Что означает «CPAN/foo/bar/...»?
Есть ли версии Perl со свидетельством ISO или ANSI?
Где можно получить информацию о Perl?
Какие в USENET есть конференции о Perl? Где задавать вопросы?
Куда мне отправлять исходники?
Книги по Perl
В каких журналах пишут про Perl?
Какие есть списки рассылки по Perl?
Где можно найти архивы comp.lang.perl.misc?
Где можно купить коммерческую версию Perl?
Куда мне высылать сообщения об ошибках?
Что такое perl.com? Perl Mongers? pm.org? perl.org? cpan.org?

Какие архитектуры поддерживает 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).

Где взять бинарную версию perl?

Для Windows уже собранную версию Perl можно бесплатно получить у ActiveState.
Для системы Solaris (как на архитектуре Intel, так и на SPARC) бинарные файлы со многими утилитами, в том числе Perl, есть на Sunfreeware.com.
Если у вас нет компилятора C — производитель системы почему-то не предоставил — то лучше взять из Сети бинарную версию gcc и собрать perl с ее помощью. В CPAN есть бинарные файлы только для тех систем, для которых невероятно сложно раздобыть свободные компиляторы — не для Unix.
Полезные ссылки:
http://cpan.org/ports/
http://perl.com/download.csp
Если нужен perl для Win16, попробуйте djgpp-порт от Ласло Молнара, к которому прилагаются ясные инструкции по установке.

У меня нет компилятора C. Как собрать интерпретатор Perl?

Если у вас нет компилятора C, то вы обречены, и производитель вашей системы должен быть принесен в жертву богам Солнца (Sun gods). Но это вам не поможет.
Сначала вам нужно взять бинарную версию gcc. Где ее искать, прочитайте в USENET'овских FAQ по вашей операционной системе.
Хотя можете поискать в Сети подходящий уже собранный бинарный файл с Perl (или с компилятором C):
Для Windows Vanilla Perl и Strawberry Perl идут в комплекте с компилятором C. Собранный и готовый к использованию Perl — ActiveState.
Для Sun бинарные файлы с самыми популярными приложениями, в том числе и с Perl, есть наSunfreeware.com.

Я скопировал бинарный файл perl с одной машины на другую, но скрипты не работают.

Скорее всего, вы забыли библиотеки, или пути к библиотекам различаются. Вам действительно нужно собрать полную версию на том компьютере, где она будет использоваться, а потом выполнить make install. Практически все остальные способы обречены на провал.
Чтобы быстро проверить, что всё на месте, можно вывести зашитые в собранном perl пути @INC, по которым интерпретатор ищет библиотеки:
% perl -le 'print for @INC'
Если эта команда выдает какие-либо пути, которых нет в вашей системе, то может понадобиться поместить соответствующие библиотеки в нужные места, либо создать символьные ссылки или синонимы. @INC также включается в вывод команды
% perl -V

Я взял исходники и попробовал собрать, но появилось сообщение «gdbm/dynamic loading/malloc/linking/... failed». Как это исправить?

Прочитайте файл INSTALL, включенный в дистрибуцию. В нем подробно описано, что делать с большинством особенностей систем или архитектур, не обрабатываемых скриптом configure.

Какие есть модули и расширения для Perl? Что такое CPAN? Что означает «CPAN/foo/bar/...»?

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 со свидетельством ISO или ANSI?

Разумеется, нет. Ларри думает, что ему самому выдадут свидетельство (о помешательстве) до того, как свидетельство выдадут Perl.

Где можно получить информацию о 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:
perltoot — об объектах,
perlboot — об объектах для новичка,
perlopentut — о семантике открытия файлов,
perlreftut — о работе со ссылками,
perlretut — о регулярных выражениях,
perlthrtut — о потоках,
perldebtut — об отладке,
perlxstut — о взаимодействии C и Perl.
На тот момент, когда вы читаете FAQ, может добавиться что-то еще.
Другие полезные ссылки:
http://perldoc.perl.org/
http://bookmarks.cpan.org/search.cgi?cat=Training%2FTutorials

Какие в USENET есть конференции о Perl? Где задавать вопросы?

Perl посвящено несколько конференций:
comp.lang.perl.announce — модерируемая группа анонсов,
comp.lang.perl.misc — основные обсуждения Perl (большой трафик),
comp.lang.perl.moderated — модерируемая группа обсуждений,
comp.lang.perl.modules — использование и разработка модулей Perl,
comp.lang.perl.tk — использование Tk (и X) в 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

Доступен ряд книг по 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 г.

В каких журналах пишут про Perl?

«The Perl Review» почти полностью посвящен Perl (хотя порой и вставляет в тексте замечания о другом языке). Еще есть немецкий журнал про Perl «$foo Magazin».
Среди журналов, которые часто публикуют хорошие статьи о Perl — «Unix Review», «Linux Magazine» и рассылка для членов ассоциации Usenix «login:»
Колонки Рэндала Шварца можно найти на stonehenge.com:
http://www.stonehenge.com/merlyn/PerlJournal/,
http://www.stonehenge.com/merlyn/WebTechniques/,
http://www.stonehenge.com/merlyn/UnixReview/,
http://www.stonehenge.com/merlyn/LinuxMag/.
Первое (и долгое время — единственное) периодическое издание о 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/.

Какие есть списки рассылки по Perl?

У весомой части модулей (Tk, CGI, libwww-perl) есть свои списки рассылки. Информацию о подписке смотрите в документации, которая прилагается к определенному модулю.
Полный перечень списков рассылки по Perl можно найти на http://lists.cpan.org/.

Где можно найти архивы comp.lang.perl.misc?

Поисковая машина Google теперь работает с архивами групп новостей.
Если есть вопрос, то наверняка кто-то его уже задавал в comp.lang.perl.misc. Для поиска требуется какое-то время и терпение, но обычно нужный ответ находится.

Где можно купить коммерческую версию Perl?

На деле, 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? Perl Mongers? pm.org? perl.org? cpan.org?

Perl.com — часть O'Reilly Network, подразделения O'Reilly Media.
«Perl Foundation» — это организация, пропагандирующая Perl и содержащая сайт http://www.perl.org/. Домен используется для базовых служб поддержки вроде списков рассылки и сайтов. Также есть много других специальных субдоменов для специальных тем вроде изучения Perl, новостей Perl, вакансий для программистов на Perl:
http://learn.perl.org/
http://use.perl.org/
http://jobs.perl.org/
http://lists.perl.org/
Perl Mongers размещает на домене pm.org службы, связанные с пользовательскими группами, в том числе их списки рассылок и сайты. Информацию о вступлении в группу или создании новой, а также о получении сервисов, смотрите на http://www.pm.org/.
http://cpan.org/ — «Всеобъемлющая сеть архивов Perl», дублирующийся на сотнях машин по всему миру архив программного обеспечения на Perl. См. выше ответ на вопрос «Что такое CPAN?».

No comments:

Post a Comment