Spec-Zone.ru › Perl 5.28

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

ОПИСАНИЕ

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

Что такое Perl?

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

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

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

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

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

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

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

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

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

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

(представлено brian d foy)

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

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

  • Если всё работает, обновление perl может привести к его поломке (или, по крайней мере, вызову новых предупреждений).

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

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

  • В версиях до perl5.004 были серьёзные проблемы с безопасностью из-за переполнения буфера, в некоторых случаях имелись уведомления CERT (например, http://www.cert.org/advisories/CA-1997-17.html).

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

  • Непосредственно предшествующие версии (например, perl5.14.x) обычно поддерживаются в течение некоторого времени, хотя и не на таком же уровне, как текущие версии.

  • Никто не поддерживает Perl 4. Десять лет назад он был мёртвым верблюдом (согласно этому документу). Сейчас это едва ли скелет, так как его побелённые кости разрушились или эродировались.

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

Что такое 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 много сильных сторон и несколько слабых мест, и какой именно аспект является хорошим, а какой — плохим, часто зависит от личных предпочтений.

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

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

Можно ли выполнить задачу [task] в 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.

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

© 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.28.3/perlfaq1

Spec-Zone.ru

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