Spec-Zone.ru › Perl 5.34

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.20210411

ОПИСАНИЕ

Этот раздел 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 могут содержать улучшения производительности и новые функции, отсутствующие в более старых версиях. С тех пор, как Perl5 был впервые представлен, произошли многочисленные изменения в Perl.

  • Сообщество 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 — известный пример). Существует перекрытие в сообществах, и это перекрытие способствует традиции обмена и заимствования, которые были решающим фактором успеха 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», которое Рэндалл Шварц использовал для подписи электронных писем и сообщений на новостных группах, начиная с конца 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 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.34.0/perlfaq1

Spec-Zone.ru

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