Spec-Zone.ru › Perl 5.32

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

ОПИСАНИЕ

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

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

  • Помимо текущей стабильной версии, поддерживается и предыдущая стабильная версия. См. "MAINTENANCE AND SUPPORT" в 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, 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.32.0/perlfaq1

Spec-Zone.ru

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