Spec-Zone.ru › Perl 5.30

perlfaq1

СОДЕРЖАНИЕ

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

НАЗВАНИЕ

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

ВЕРСИЯ

версия 5.20190126

ОПИСАНИЕ

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

Что такое Perl?

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

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

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

Эти преимущества делают его особенно популярным среди веб-разработчиков и системных администраторов. Математики, генетики, журналисты, менеджеры и многие другие люди также используют 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 могут быть уязвимости в безопасности, некоторые из которых серьезны (см. perlsec и поиск CVEs для получения дополнительной информации).

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

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

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

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

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

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

Цифра после Perl (например, 5 в Perl 5) — это основная версия интерпретатора perl и версия языка. Каждая основная версия имеет существенные отличия, которые не могут поддерживать более ранние версии.

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

Perl 6 — это переосмысление Perl, это язык из того же семейства, но не совместимый. Два языка взаимодополняют друг друга, а не исключают друг друга. Perl 6 не призван заменить Perl 5, и наоборот. Подробнее об этом см. ниже «Что такое Perl 6?».

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

Что такое Perl 6?

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

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

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

Если вы хотите узнать больше о Perl 6, прочтите страницу разработчиков Perl 6 по адресу http://www.perl6.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 Портеры, и их организация описана по адресу http://perldoc.perl.org/perlpolicy.html. Правила организации сводятся к одному: Ларри всегда прав, даже когда он ошибается.

Сложно ли освоить Perl?

Нет, Perl легко начать изучать — и легко продолжать обучение. Он похож на большинство языков программирования, с которыми вы, вероятно, уже знакомы, поэтому, если вы когда-либо писали программу на C, скрипт на awk, скрипт на shell или даже программу на 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–2020 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.30.3/perlfaq1

Spec-Zone.ru

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