Pull to refresh

Mini-FAQ по Perl (Частые вопросы, ЧаВо)

Reading time 4 min
Views 18K
Меня часто спрашивают, как я учил Perl — какие книги читал, какие сайты посещал и так далее. Многие считают, что Perl имеет сложный синтаксис, и потому не хотят или бояться его учить. В этом FAQ я хотел бы поделиться своим мнением относительно языка Perl.

Я слышал, что Perl — устаревший язык и сейчас на нем никто не пишет. Так ли это?
Нет, не так. Perl используется системными администраторами (или просто продвинутыми пользователями) для автоматизации рутинной работы. Perl используется для создания веб-сайтов. Также на нем создаются обычные приложения, как и на любом другом языке программирования.

Относительно возраста языка — Perl был создан в 1986 году и с тех пор активно развивался и изменялся. В настоящее время Perl поддерживает модульное и объектно-ориентированное программирование, регулярные выражения и т.д. — в общем, идет в ногу со временем.

Объявления о имеющейся вакансии Perl-программиста появляются с большой частотой, при этом уровень заработной платы, как правило, ощутимо выше, чем у программистов на Си или Java. Впрочем, к моменту, когда вы будете читать эти строки, ситуация могла и измениться, так что лучше проведите собственное исследование в этом направлении, посетив, к примеру, rabota.ru.

Чем хорош Perl?
Я бы выделил следующие преимущества Perl перед другими языками программирования:
  • Программы, написанные на Perl (как и в случае с любым другим скриптовым языком), одинаково хорошо работают под разными операционными системами.
  • Зачастую то, что на другом языке программирования (например, PHP) занимает десять строк кода может быть написано на Perl в одну строчку.
  • Если перед вами стоит какая-то задача, загляните в CPAN. Скорее всего, кто-то уже решил ее. Вам остается лишь скачать модуль и прочитать документацию к нему.


Я слышал, что синтаксис Perl неописуемо сложен. Так ли это?
Синтаксис Perl очень похож на синтаксис Java или PHP. Те же циклы, те же условные операторы и фигурные скобочки. Репутацию языка со сложным синтаксисом Perl совершенно незаслуженно получил за имеющиеся в нем операторы, которые, как уже отмечалось, позволяют писать более короткий код. Скажем, вы можете объявить массив слов так:

my @arr = ("aaa", "bbb", "ccc");

или более простым способом — без запятых и кавычек:

my @arr = qw/aaa bbb ccc/;

Если вас интересуют конкретные примеры, в которых код на Perl оказывается короче, чем на каком-нибудь PHP, я позволю себе отослать вас к моему блогу, а точнее — к записи Интересные примеры на Perl. Особое внимание обратите на операторы grep и sort, подумайте, сколько кода занял бы аналогичный код на PHP.

С чего начать изучение Perl?
Лично я учился на примерах. Вообще считаю этот способ самым простым и понятным. Вы можете без труда найти их в Google или в уже упомянутом моем блоге — в нем я часто выкладываю скрипты с комментариями.

Тем не менее могу порекомендовать несколько хороших книг — это «Изучаем Perl» и «Perl: изучаем глубже», авторы — Шварц Р. и Феникс Т. Недавно эти книги были переизданы, так что в них вы найдете самый легкую для усвоения и актуальную информацию о программировании на Perl. Настоятельно не рекомендую брать какие-либо другие книги, поскольку написанное в них зачастую уже давно потеряло актуальность (если книжка, скажем 2006-го года — помните, что Perl активно развивается) или в ней написано 1000 страниц ни о чем.

Если у вас возникнут вопросы относительно программирования на Perl, вы можете попросить совета на программерских форумах (например, vingrad.ru) или в жж-сообществе ru_perl.

Я не хочу устанавливать UNIX только ради этого вашего Perl!
И не надо — Perl портирован под Windows. Соответствующий проект называется ActivePerl. Просто скачайте и установите ActivePerl с http://www.activestate.com/activeperl/ и пользуйтесь на здоровье. Никаких кряков и кейгенов искать не нужно — программа бесплатная.

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

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

Во-вторых, Perl подходит не для всяких задач. Если от вас требуется написать программу, которая должна работать быстро (графический редактор, 3D игру), Perl вам не подойдет. Как и любой другой скриптовый язык. Аналогично я не стал бы писать на Perl драйверы.

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

А минус за ненависть к PHP не желаете?
PHP имеет свои преимущества, многие из которых вытекают из простоты его синтаксиса. Простой синтаксис, значит прост в изучении. Прост в изучении, значит больше комьюнити.

Не стоит недооценивать PHP, ведь благодаря ему появились такие мощные CMS, как Drupal и Joomla. Аналогичных проектов на Perl мне не известно, если не считать аналога WordPress — Movable Type. Последний, к слову, пользуется большой популярностью за рубежом.

Update: я тут написал небольшой пост об основах программирования на Perl, может быть кому-нибудь пригодится: http://eax.me/perl-basics/
Tags:
Hubs:
+45
Comments 182
Comments Comments 182

Articles