Доброго времени суток! Хотелось бы узнать стоит ли изучать Perl. Каковы его функциональные возможности, применение и назначение?

задан 3 Апр '12 17:26

изменен 5 Апр '12 4:14

Angry%20Bird's gravatar image


921517

Вот здесь очень много народа сравнивают перл и питон.

(4 Апр '12 17:28) avp
3

Ещё в прошлом тысячелетии видел питоновский сайт, у которого на страничке был анимированный gif: стоит верблюд по центру, слева вылетает зелёный змей, сшибает скотину набок и вышибает с картинки.

(4 Апр '12 17:43) alexlz

@alexlz, в общем, так оно и есть. Но в некоторых областях он продолжает держать позиции. И некоторые крупные конторы, типа Яндекс или Мейл.ру постоянно имеют вакансии для перловых программистов.

Но если нет особой необходимости, я бы не посоветовал бы его для изучения в первой очереди.

(4 Апр '12 17:50) mikillskegg

Меня в перле больше всего смущает обилие очень хитро написанных скриптов с мощными регулярными выражениями (и без комментариев, как это работает).

Впечатление, что это конкурс "скилломерии".

(4 Апр '12 17:54) avp
1

Ну это да. В мире перла считается, чем замысловатее написан скрипт, тем лучше.)))

(4 Апр '12 17:58) mikillskegg

@avp ну их-то регэкспы сейчас везде. У перла других вывихов через край. Взять хотя бы две сосуществующие системы видимости: лексикографическая (если не переврал) и пакетная. Но читать перловые скрипты нелегко. Особенно без ключиков -w и use strict; @mikillskegg раз были созданы, сейчас поддерживаются и развиваются, и будут жить (и судьба yahoo store им не грозит). Но по моему личному убеждению, таких фокусов лучше больше не делать. Лучше всёже что-нибудь менее error-prone.

(4 Апр '12 18:01) alexlz
показано 5 из 6 показать еще 1
10|600 символов нужно символов осталось
5

http://ru.wikipedia.org/wiki/Perl

По мне, так это очень удобный и простой язык. Мой любимый )))

ссылка

отвечен 3 Апр '12 17:35

А почему у перла разное отношение к переменной $l и переменной $a? Или какое значение будет в арифметическом выражени нулём, а в логическом -- истиной. (-w, разумеется должен быть)

(8 Апр '12 23:10) alexlz

Ещё и $b. Дело в том, что переменные а и б используются Перлом при сортировке, соответственно, использовать их в программе для чего-то другого не рекомендуется, но можно. Арифметическим нулём будет 0, как это не странно. В логическом любое значение отличное от 0 или undefа.

(10 Апр '12 14:47) 2Roman

На первый вопрос ответ правильный. Второй, перефразирую. Подставить значение переменной $c, чтобы скрипт выдал результат 1

  perl -we '$c=<сюда подставить>; if ($c) {print 1+$c}'
(10 Апр '12 15:25) alexlz

Интересно, как в этом окошке так красиво код выделить? ))

perl -we '$c=0; if (defined $c) {print 1+$c}'
(10 Апр '12 16:13) 2Roman

Отступы в начале строки и пустые строки вокруг (по крайней мере перед).

perl -we '$c=q{0E1}; if ($c) {print 1+$c}'
# или
perl -we '$c=q{0E1}; print 1+$c if $c'

Показатель степени десятки может быть любым. Кажись использовалось где-то в DBI::что-то-там. Если 0E0 -- запрос выполнен, но результат -- 0 строк. А если undef -- облом запроса.

@mikillskegg Что гыгы? Эволюция или gnuhello? А эволюция прикольней у программиста на хаскеле.

(10 Апр '12 17:35) alexlz
10|600 символов нужно символов осталось
4

В настоящее время широко используется для обработки больших объемов текстовой информации, собственно для чего и был создан. Это и определяет сферу его популярности. Кроме всего прочего, туда входит такая серьезная наука как биоинформатика - наука об анализе последовательностей нуклеиновых кислот и пептидов.

ссылка

отвечен 4 Апр '12 17:40

10|600 символов нужно символов осталось
4

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

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

Одной из современных "ниш" для языка Perl стала веб-разработка. На нём написано немало веб-фреймворков - как микрофреймворков, так и полнофункциональных MVC-фреймворков. Многие компании разрабатывают свои движки на языке Perl - это регистраторы доменных имён и хостинг-провайдеры, поисковые системы, SEO-компании, медиакомпании, разработчики онлайн-игр и т.д.

В последние годы язык Perl переживает свой "ренессанс", своего рода возрождение - очень многое было доработано как в самом языке (к примеру, появилась наиболее полная из всех языков поддержка Unicode), так и в сторонних модулях: написаны фреймворки для эффективной объектно-ориентированной разработки, асинхронного программирования, удобные ORM, и многое, многое другое. Как выразился недавно один комментатор блога о Perl:"This is not your Daddy's Perl" - "Это не тот Perl, на котором программировал твой папочка" :) Это Modern Perl.

У языка Perl довольно активное комьюнити, которое поддерживает и развивает его. Ежегодно по всему миру проводятся десятки конференций YAPC (Yet Another Perl Conference), воркшопов и технических, а также нетехнических встреч, посвящённых Perl - в том числе и в России (зачастую с участием заграничных гостей). Участие в таких мероприятиях как правило бесплатное.

Кстати, одна из таких конференций будет проводиться совсем скоро, 12-13 мая, в Киеве. Если есть время, возможность и интерес к языку Perl, весьма рекомендую прийти послушать доклады и пообщаться с людьми, использующими этот язык в повседневной жизни. Участие в конференции бесплатное, нужно только зарегистрироваться и подать заявку на участие на сайте конференции.

ссылка

отвечен 8 Апр '12 14:09

3

"безопасный и современный"? Да уж... А безопасный -- как пулемёт у Попандопуло ("Свадьба в Малиновке") -- "по своим стреляет"?

При серьёзных разработках оказывает положительное влияние на здоровье, повышая уровень адреналина в крови

(8 Апр '12 15:49) alexlz
1

Отвечая на все Ваши комментарии.

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

В каждой уважающей себя компании существуют стандарты кодирования и оформления кода, а в идеале и peer-to-peer code review, так что написать нечитаемый код на Perl Вам просто не позволят.

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

И если он предпочитает писать нечитаемый код - это уже многое о нём говорит ;)

(10 Апр '12 14:17) odmink0

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

Возможно пишут и большие. Вопрос -- зачем? Можно и лопатой деревья рубить, только пила/топор как-то удобнее.

(10 Апр '12 14:59) alexlz
1

Так в том и дело, что ничего удобнее перла лично я не встречал. Хотя профессионально использую достаточно большое количество языков (но любые отступления от перла бывают только по одной причине - требование заказчика).

(11 Апр '12 20:04) reshu
10|600 символов нужно символов осталось
4

Perl весьма лаконичный, живой, изящный и одновременно CPAN-термоядерный. В нём сочетаются разные традиции и нет осуждения. Он даёт спокойствие и находит гармонию. Остальные --- блеклая тень и суета.

ссылка

отвечен 9 Апр '12 0:44

1

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

(9 Апр '12 10:33) alexlz

Без лишних сущностей можно так:

$_ = 'World';
say /^World$/ ? 'Hello' : 'Bye', ", $_!";

или

say qw{Bye Hello}[/^World$/+0], ", $_!";
(10 Апр '12 13:57) DONANGEL

А теперь объясните мне, почему у меня это не работает? (желательно без наводящих вопросов). Сможете, уважаемый говорун?

(10 Апр '12 14:43) alexlz

Прям так и хочется после ответа ув. @DONANGEL произнести: In saecula saeculorum.

(10 Апр '12 18:49) mikillskegg
1

Согласен, Пусть уважаемый говорун объяснит. Позовите говоруна! От себя могу добавить use feature qw( say );.

(10 Апр '12 18:50) DONANGEL

Извиняюсь, забыл. Конечно --- In saecula saeculorum :)

(10 Апр '12 23:11) DONANGEL

Говорун -- от говорить (say). И проблема была, разумеется, в отсутствии use feature (без лишних сущностей)

(10 Апр '12 23:26) alexlz
показано 5 из 7 показать еще 2
10|600 символов нужно символов осталось
4

Perl даёт всё, что бы писать изящный и выразительный код. Мультипарадигменный, модифицируемый, подстраиваемый под любую модель разработки. P.S. и конечно же не стоит забывать, что у хороших perl программистов всегда будет интересная и высокооплачиваемая работа.

ссылка

отвечен 9 Апр '12 1:37

2

Как и у любых других программистов ;D

(9 Апр '12 1:42) AlexWindHope

Ну что Вы, не у любых, а только у хороших (и да, язык тут не главное).

А на счёт мощности языка и его изменчивости... посмотрите на подмножество Acme::*

  • https://metacpan.org/module/Acme::Morse
  • https://metacpan.org/module/Acme::Ukrop
  • https://metacpan.org/module/Acme::Pythonic

Acme::Brainfuck, Acme::Bleach и ещё горы всего. Если у перловиков есть время писать такие странные вещи, то всё, что им нужно для работы, они уже написали.

(9 Апр '12 17:03) greenfactory
10|600 символов нужно символов осталось
4

В последнее время Perl очень бурно развивается. Появились очень качественные веб-фреймворки, такие как Mojolicious, Dancer. Появился полностью асинхронный веб-фреймворк Tatsumaki, который по производительности может поспорить с Node.js. Так что для разработки веб-приложений Perl подходит как нельзя лучше. А если учесть, что В Perl есть одна из самых лучших систем тестирования, то разработка методом TDD ( Test Driven Development ) становится одним сплошным удовольствием, и программы получаются очень качественные.

Perl - это умный язык. Его разрабатывал лингвист по профессии. Поэтому Perl - это набор базовых кирпичиков, из которых можно построить красивое здание Вашего веб-проекта. Любые готовые части здания можно найти на CPAN или новом поисковике METACPAN. Это позволяет построить здание веб-проекта с максимально высокой скоростью.

В общем, выбирая язык программирования Perl, Вы однозначно выигрываете.

ссылка

отвечен 9 Апр '12 12:08

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

(9 Апр '12 13:25) alexlz
1

Все это реализуется в Perl6 ))

(9 Апр '12 13:56) vaneska
10|600 символов нужно символов осталось
2

На perl легко и быстро написать:

  • бота, паука.
  • систему обработки террабайтов текста и html.
  • окошечное приложение под linux(qt,gtk).
  • web интерфейс(Rose::DB +HTML::Template + fastcgi), который не будет падать от 1000 одновременных соединений.
  • однострочники для повседневых задач(cat access.log|perl -le 'split,$h{$_[0]}++ for <>; $,="\n"; print map{"$_ $h{$_}"} sort{$h{$a}<=>$h{$b}}keys %h'|tail)
  • клиент для любого веб и не только сервиса.
  • и многое другое.
ссылка

отвечен 9 Апр '12 1:12

Быстро написать ничего не получится...особенно бота.

(9 Апр '12 9:21) Asen

Это мой опыт, у тебя может и не получится - у меня получилось.

(9 Апр '12 13:18) nonSmoker
1

Мой опыт в этой сфере тоже далеко не мал =) Тем не менее, качественного бота быстро написать не получится. Если вы заявляете, что сумеете написать бота быстро, то это говорит о низком качестве ваших ботов.

(12 Апр '12 10:59) Asen
10|600 символов нужно символов осталось
2

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

my $name = "World";

if ($name eq 'World') {
    print "Hello, $name\n";
} else {
    print "Bye, $name\n";
}
ссылка

отвечен 9 Апр '12 1:56

большенство современных языков могут тоже самое и что?

(9 Апр '12 9:33) Spectre

А на питоне?

 name = 'World'
 if name == 'World': print ('Hello, %s\n' % name)
 else : print ('Bye, %s\n' % name)
(9 Апр '12 10:41) alexlz
1

мде... Пример - печаль

(9 Апр '12 13:20) AlexWindHope

А что в примере показать? Регулярные выражения в условиях:

if ($name =~ /^(World|Something)$/) {
    print "Hello, $1\n";
}

Регулярные выражения как функция:

print "Hello, ", $name =~ /^(World|Something)$/;

Массивы, хэши, скаляры:

my @array = (1, 2, 3);
my %hash = (a => 1, b => 2);
my $scalar = 1;
(9 Апр '12 17:05) zzzcpan

вот, это уже интересней, хотя тоже в других я зыках реализуется=)

(10 Апр '12 23:29) Spectre
10|600 символов нужно символов осталось
1

Последний пример я бы переписал так:

my $name = 'World';
my $greet = $name eq 'World' ? 'Hello' : 'Bye';
say $greet . ',' . $name;

А помимо обработки текста, perl очень хорош для системного программирования под unix like OS. На нем пишутся различные системы мониторинга сетей, оборудования и т.п. И в этой сфере он гораздо более востребованный нежели С/С++, потому что скорость разработки на нем в разы быстрей.

ссылка

отвечен 10 Апр '12 11:41

изменен 10 Апр '12 11:44

Чего уж так скромно-то?

 my $name=World;
 print qw{Hello Bye}[$name != World], q{, }, $name, qq{!\n};

Всё равно -- бяка.

(10 Апр '12 12:45) alexlz

Ну я привел пример читаемости, а вы - нечитаемости. Принцип TIMTOWTDI

(10 Апр '12 12:51) kuptsov
2

И что же тут нечитаемого? Просто перл -- такой язык. Сложный. Чтобы читать написанные на нём скрипты, надо знать много всяких мелочей. Из ничетаемого тут что: print? операции q, qq, qw? операция !=? операция индексации? Всё достаточно просто, но прочитать без подготовки (и не 5-15 минут) вряд ли кто из незнакомых с перлом сможет. Языка такая. (Кстати, сишный тернаный условный оператор "?:" у незнакомых с ним тоже шок вызывает).

(10 Апр '12 13:16) alexlz
1

Нет не надо говорить что "perl такой язык сложный". Это не правда. "perl позволяет делать простые вещи просто, а сложные делает возможными" (c) Larry Wall.

(10 Апр '12 14:28) kuptsov

Почему я должен верить всему, что пишет Larry Wall? Это его детище, не будет же он его ругать.

(10 Апр '12 14:34) alexlz
1

По поводу высказывания Ларри. Простые вещи на то и простые. Еще бы не хватало, чтобы Хеловорд занимал несколько страниц. А то, что сложные вещи делаются возможными - очень хитрое высказывание. Возможно - не значит просто. Все на свете можно выразить на ассемблере, но это не значить, что сделать это просто.

Перл - язык очень хитрый. Простым он является на уровне чуть сложнее упомянутого Хеловорда. Далее следует куча всяких тонкостей и хитростей.

(10 Апр '12 14:51) mikillskegg
1

Хеловорд, говорите? Ну-ну. Смотреть сюда, раздел "Master Programmer"

Ещё можно Gnu Hello посмотреть. Тоже впечатляет.

(10 Апр '12 15:29) alexlz

Гыгы. Смешно. Я не имел в виду извращения, а нормальное использование языка. А так, это еще не предел...

(10 Апр '12 16:16) mikillskegg

Хакер только неаккуратный. Так будет без warning-ов :

#define S "Hello, world.\n"
int main(){ return (write(1,S,sizeof(S)-1) == sizeof(S)-1 ? 0 : 1);}
(10 Апр '12 16:53) avp
показано 5 из 9 показать еще 4
10|600 символов нужно символов осталось
0

Лучше не начинайте изучать Perl, так как спрос на программистов Perl за предыдущий год упал почти в 2 раза! Точно такая же картина с программистами PHP... Лучше начните изучать Ruby, Ruby на рельсах или Python+Django. Спрос на этих программистов вырос почти в два раза! Несмотря на то, что Perl довольно мощный и гибкий язык, изучить его можно лишь для саморазвития, но не для профессиональной деятельности, так как он постепенно гибнет на глазах. Ему на смену идут совершенно новые решения.

ссылка

отвечен 8 Апр '12 15:00

1

"Точно такая же картина с программистами PHP" - пруф будет? Лично я обладаю иной информацией

Ага и ruby программисты востребованы :D

Хотя с тем, что Perl умирает - согласен

(8 Апр '12 22:54) AlexWindHope

А вот в февральском рейтинге языков программирования, публикуемых компанией Tiobe, смотрел здесь perl слегка поднялся.

Так где спрос упал (и когда он высоким был) ?

(9 Апр '12 2:05) avp

Ну раз спрос упал в два раза, значит он был когда-то в два раза выше =). На самом деле, квалифицированные разработчики PHP/Perl с опытом работы от 10 лет по-прежнему получают порядка 150000 рублей, но спрос на эти языки падает с каждым месяцем. Например, в два раза спрос упал с 1 сентября 2011 по 1 декабря 2011.


Зато на разработчиков Ruby on Rails востребованность(за тот же отрезок времени) возросла почти в два(!) раза.

(9 Апр '12 9:27) Asen

Кстати, исходя из приведенного вами списка популярности языков, на Python спрос упал почти на 4% ! Интересно с чем это может быть связано?

(9 Апр '12 9:32) Asen
10|600 символов нужно символов осталось
Ваш ответ

Если вы не нашли ответ, задайте вопрос.

Здравствуйте

ХэшКод - это совместно редактируемый форум вопросов и ответов для начинающих и опытных программистов.

Присоединяйтесь!

отмечен:

×96

задан
3 Апр '12 17:26

показан
1230 раз

обновлен
19 Июн '12 20:53

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии

Рейтинг@Mail.ru