Spec-Zone.ru › Perl 5.38

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 и поиск CVE для получения дополнительной информации).

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

  • Помимо текущей стабильной версии, поддерживается также предыдущая стабильная версия. См. "ТЕХНИЧЕСКОЕ ОБСЛУЖИВАНИЕ И ПОДДЕРЖКА" в 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 — известный пример). Существует перекрытие в сообществах, и это перекрытие поддерживает традицию обмена и заимствования, которая сыграла важную роль в успехе Perl.

Дополнительную информацию о 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, скрипт оболочки или даже программу на BASIC, вы уже на пути.

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

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

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

Как 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», что Рэндалл Шварц использовал для подписи электронных писем и сообщений в новостях Usenet, начиная с конца 1980-х годов. Ранее он использовал это выражение со многими темами («Just another x hacker»), поэтому, чтобы отличить своё 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 Тома Кристиансена, Нейтана Торкингтона и других авторов, как указано. Все права защищены.

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

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

© 1993–2023 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.38.0/perlfaq1

Spec-Zone.ru

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