Spec-Zone.ru › Perl 5.36

perlfaq1

СОДЕРЖАНИЕ

  • НАЗВАНИЕ
  • ВЕРСИЯ
  • ОПИСАНИЕ
    • Что такое Perl?
    • Кто поддерживает Perl? Кто его разрабатывает? Почему он бесплатный?
    • Какую версию Perl следует использовать?
    • Что такое Perl 4, Perl 5 или Raku (Perl 6)?
    • Что такое Raku (Perl 6)?
    • Насколько стабилен Perl?
    • Как часто выпускаются новые версии Perl?
    • Сложно ли изучать Perl?
    • Как Perl сравнивается с другими языками, такими как Java, Python, REXX, Scheme или Tcl?
    • Можно ли выполнить [задачу] в Perl?
    • Когда не стоит программировать на Perl?
    • В чём разница между «perl» и «Perl»?
    • Что такое JAPH?
    • Как убедить других использовать Perl?
  • АВТОР И АВТОРСКИЕ ПРАВА

НАЗВАНИЕ

perlfaq1 - Общие вопросы о Perl

ВЕРСИЯ

версия 5.20210520

ОПИСАНИЕ

Этот раздел FAQ отвечает на очень общие, высокоуровневые вопросы о Perl.

Что такое Perl?

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

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

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

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

Кто поддерживает Perl? Кто его разрабатывает? Почему он бесплатный?

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

Команда разработчиков ядра (известная как Perl Porters) — это группа очень альтруистичных людей, приверженных созданию лучшего бесплатного программного обеспечения, чем вы могли бы купить за деньги. Вы можете следить за текущими разработками в архивах архивах или подписаться на список рассылки, отправив запрос на подписку perl5-porters-subscribe@perl.org (можно отправить пустое сообщение без темы).

Хотя проект GNU включает Perl в свои дистрибутивы, «GNU Perl» не существует. Perl не разрабатывается и не поддерживается Фондом свободного программного обеспечения. Лицензионные условия Perl также более открыты, чем условия программного обеспечения GNU.

Вы можете получить коммерческую поддержку Perl, если хотите, хотя для большинства пользователей неформальной поддержки будет более чем достаточно. См. ответ на вопрос «Где можно купить коммерческую версию Perl?» для получения дополнительной информации.

Какую версию Perl следует использовать?

(внесено brian d foy с обновлениями от других)

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

Помимо этого, вам необходимо учитывать несколько моментов и решить, что лучше для вас.

  • Если всё работает, обновление Perl может сломать это (или, по крайней мере, выдать новые предупреждения).

  • В последних версиях Perl больше исправлений ошибок.

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

  • Сообщество Perl ориентировано на поддержку последних версий, поэтому вам будет легче найти помощь по ним.

  • Более старые версии Perl могут иметь уязвимости в системе безопасности, некоторые из которых серьёзные (см. perlsec и поиск CVEs для получения дополнительной информации).

  • Последние версии, вероятно, наименее распространённые и широко протестированные, поэтому, если вы склонны к риску, возможно, стоит подождать несколько месяцев после их выпуска и посмотреть, какие проблемы есть у других.

  • Помимо текущей стабильной версии, поддерживается и предыдущая стабильная версия. См. "ТЕХНИЧЕСКОЕ ОБСЛУЖИВАНИЕ И ПОДДЕРЖКА" в perlpolicy для получения дополнительной информации.

  • На самом деле есть два направления разработки Perl: версия поддержки и экспериментальная версия. Версии поддержки стабильны и имеют чётное значение как второстепенную версию (например, perl5.24.x, где 24 — второстепенная версия). Экспериментальные версии могут включать функции, которые не попадают в стабильные версии, и имеют нечётное значение как второстепенную версию (например, perl5.25.x, где 25 — второстепенная версия).

  • Вы можете обратиться к выпускам для определения текущей стабильной версии Perl.

Что такое Perl 4, Perl 5 или Raku (Perl 6)?

Короче говоря, Perl 4 является родителем Perl 5 и Raku (ранее известного как Perl 6). Perl 5 — старший брат, и, хотя это разные языки, человек, знающий один из них, заметит много сходств в другом.

Число после Perl (например, 5 после Perl 5) является основной версией интерпретатора perl, а также версией языка. В каждой основной версии есть существенные различия, которые более ранние версии не могут поддерживать.

Текущая основная версия Perl — Perl 5, выпущенная в 1994 году. Она может запускать скрипты предыдущей основной версии, Perl 4 (март 1991 года), но имеет существенные различия.

Raku — это переосмысление Perl, язык того же происхождения, но несовместимый. Они дополняют друг друга, а не исключают друг друга. Raku не предназначен для замены Perl, и наоборот. См. "Что такое Raku (Perl 6)?" ниже, чтобы узнать больше.

См. perlhist для истории ревизий Perl.

Что такое Raku (Perl 6)?

Raku (ранее известный как Perl 6) изначально описывался как переработка Perl сообществом, однако по мере развития языка стало ясно, что это отдельный язык, но принадлежащий к той же языковой семье, что и Perl.

Raku не предназначен в первую очередь для замены Perl, но как самостоятельный продукт — и существуют библиотеки, позволяющие вызывать код Perl из программ Raku и наоборот.

Вопреки распространённому мнению, Raku и Perl мирно сосуществуют друг с другом. Raku оказался увлекательным источником идей для тех, кто использует Perl (система объектов Moose — известный пример).

Для получения дополнительной информации о Raku посетите https://www.raku.org/.

«Мы действительно серьёзно относимся к переосмыслению всего, что требует переосмысления.» — Ларри Уолл

Насколько стабилен Perl?

Производственные выпуски, которые включают исправления ошибок и новые функции, широко тестируются перед выпуском. С выпуска 5.000 мы выпускаем примерно один производственный релиз в год.

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

Как часто выпускаются новые версии Perl?

В последнее время планировалось выпускать новую версию Perl примерно в апреле, но правильность выпуска важнее, чем жёсткое следование календарным датам, поэтому дата выпуска несколько гибкая. Исторические даты выпуска можно посмотреть на http://www.cpan.org/src/README.html.

Четные второстепенные версии (5.14, 5.16, 5.18) являются производственными версиями, а нечётные (5.15, 5.17, 5.19) — версиями разработки. Если вы не хотите изучать экспериментальную функцию, вам, вероятно, никогда не стоит устанавливать экспериментальную версию Perl.

Команда разработчиков Perl называется Perl 5 Porters, и их организация описана в http://perldoc.perl.org/perlpolicy.html. Правила организации сводятся к одному: Ларри всегда прав, даже когда он ошибался.

Сложно ли изучать Perl?

Нет, начать изучение Perl легко — и легко продолжить обучение. Он похож на большинство языков программирования, с которыми вы, вероятно, знакомы, поэтому если вы когда-либо писали программу на C, скрипт на awk, shell-скрипт или даже программу на BASIC, вы уже на полпути.

Для большинства задач требуется лишь небольшой подмножество языка Perl. Одно из руководящих изречений по разработке Perl — «существует более одного способа сделать это» (TMTOWTDI, иногда произносится как «тимотади»). Поэтому кривая обучения Perl пологий (легко учиться) и долгий (можно сделать очень много, если вы действительно этого хотите).

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

Факторы, которые делают Perl проще в изучении: опыт работы с Unix, почти любой опыт программирования, понимание регулярных выражений и способность понимать код других людей. Если есть что-то, что вам нужно сделать, то, вероятно, это уже сделано, и для этого обычно доступен работающий пример бесплатно. Не забывайте и о модулях Perl. Они рассматриваются в 3-й части данного FAQ, наряду с CPAN, который рассматривается во 2-й части.

Как Perl сравнивается с другими языками, такими как Java, Python, REXX, Scheme или Tcl?

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

При выборе языка также следует учитывать ресурсы, культуру тестирования и сообщество, которые его окружают.

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

Могу ли я сделать [задачу] на Perl?

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

Для многих людей Perl служит отличной заменой для скриптов оболочки. Для других он является удобной высокоуровневой заменой большей части того, что они программировали бы на низкоуровневых языках, таких как C или C++. В конечном счете, вам (и, возможно, вашему руководству) решать, для каких задач вы будете использовать Perl, а для каких — нет.

Если у вас есть библиотека, которая предоставляет API, вы можете сделать любой компонент из неё доступным как просто другую функцию или переменную Perl, используя расширение Perl, написанное на C или C++ и динамически подключенное к вашему основному интерпретатору Perl. Вы также можете пойти в обратном направлении и написать свою основную программу на C или C++, а затем подключить код Perl на лету, чтобы создать мощное приложение. См. perlembed.

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

Когда не следует программировать на Perl?

Одна из хороших причин — когда у вас уже есть существующее приложение, написанное на другом языке, которое уже готово (и выполнено хорошо), или у вас есть язык приложения, специально разработанный для определённой задачи (например, Prolog, make).

Если вы обнаружите, что вам нужно ускорить определённую часть приложения Perl (не то, что вам часто нужно), вы можете использовать C, но к нему можно получить доступ из кода Perl с помощью perlxs.

В чём разница между «perl» и «Perl»?

«Perl» — это название языка. Только «P» пишется с большой буквы. Название интерпретатора (программы, которая выполняет скрипт Perl) — «perl» с маленькой буквы «p».

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

Что такое JAPH?

(предложено brian d foy)

JAPH расшифровывается как «Just another Perl hacker» («Просто ещё один хакер на Perl»), которое Рэндел Шварц использовал для подписи электронных писем и сообщений на новостных группах, начиная с конца 1980-х годов. Ранее он использовал фразу с множеством тем («Просто ещё один хакер на x»), поэтому, чтобы отличить своего JAPH, он начал писать их как программы Perl:

print "Just another Perl hacker,";

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

На CPAN есть несколько программ JAPH по адресу http://www.cpan.org/misc/japh.

Как убедить других использовать Perl?

(предложено brian d foy)

Апеллируйте к их собственным интересам! Если Perl новый (и, следовательно, пугающий) для них, найдите что-то, что Perl может сделать, чтобы решить одну из их проблем. Это может означать, что Perl либо сэкономит им что-то (время, головную боль, деньги), либо даст им что-то (гибкость, мощность, возможность тестирования).

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

Вам не нужно беспокоиться о поиске или оплате Perl; он свободно доступен, и несколько популярных операционных систем поставляются с Perl. Поддержка сообщества в таких местах, как Perlmonks ( http://www.perlmonks.com ) и различные Perl-почтовые списки ( http://lists.perl.org ), означает, что вы обычно можете быстро получить ответы на свои вопросы.

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

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

  • http://www.perl.org/about.html

  • http://perltraining.com.au/whyperl.html

АВТОР И АВТОРСКИЕ ПРАВА

Авторские права (c) 1997-2010 Tom Christiansen, Nathan Torkington и других авторов, как указано. Все права защищены.

Эта документация бесплатная; вы можете перераспределять её и/или изменять её в соответствии с теми же условиями, что и Perl сам.

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

© 1993–2021 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.36.0/perlfaq1

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API