LINUX.ORG.RU

Сегодня языку Perl исполнилось 25 лет!

 , , ларри уолл


5

2

25 лет назад, 18 декабря 1987г., программист и лингвист Ларри Уолл выпустил первую версию языка программирования Perl.

>>> Подробности

★★

Проверено: JB ()
Последнее исправление: JB (всего исправлений: 4)

      $LOVE=               AMOUR.
    true.cards.        ecstacy.crush 
  .hon.promise.de    .votion.partners.
 tender.truelovers. treasure.affection.
devotion.care.woo.baby.ardor.romancing.
enthusiasm.fealty.fondness.turtledoves.
lovers.sentiment.worship.sweetling.pure
.attachment.flowers.roses.promise.poem;
 $LOVE=~ s/AMOUR/adore/g; @a=split(//,
  $LOVE); $o.= chr (ord($a[1])+6). chr
   (ord($a[3])+3). $a[16]. $a[5]. chr
    (32). $a[0]. $a[(26+2)]. $a[27].
      $a[5].$a[25]. $a[8].$a[3].chr
        (32).$a[29]. $a[8].$a[3].
          $a[62].chr(32).$a[62].
           $a[2].$a[38].$a[4].
               $a[3].'.';
                 print
                  $o; 
BMX ★★☆
()
Ответ на: комментарий от drBatty

Они в принципе не могут нормально ложиться на императивный ЯП

кто мешает эту самую монаду влепить в императивщину? Да никто. Да и ФП это такое же размытое понятие как и ООП. Оно, во-первых, может означать много чего, во-вторых почти все языки в той или иной мультипарадигменные.

В перловке и в shell'е пайпы реализованы с помощью костыля-временного файла

они реализованы на уровне ядра, никаких файлов не создаётся. Ты путаешь с unix sockets, fifo и прочими IPC.

true_admin ★★★★★
()
Ответ на: комментарий от KRoN73

то с точки зрения читабельности ничего не изменится

да это я так набрасываю...

true_admin ★★★★★
()

Perl сделал своё дело, Perl может уходить.

Deleted
()

Сегодня языку Perl исполнилось бы 25 лет!

rip-fix

anonymous
()
Ответ на: комментарий от helios

Единственное что может поломать — цветовую схему эмулятора терминала,

Легко исправляется. reset

KennyMinigun ★★★★★
()
Ответ на: комментарий от anonymous

Скажите, пожалуйста, какое программное обеспечение написано на этом языке за 25 лет? Спасибо.

http://sourceforge.net/directory/language:perl/
https://github.com/languages/Perl/updated
http://code.google.com/hosting/search?q=label:Perl&projectsearch=Search p...

massimus ★★★
()
Последнее исправление: massimus (всего исправлений: 1)
Ответ на: комментарий от true_admin

Если убрать маркеры конца блока то нормальному человеку уже нельзя понять что к чему относится.

Я бы наоборот убрал все end

// ни разу не питонист

KennyMinigun ★★★★★
()

Всех поздравляю! Как символично ибо вчера закончил интернет-магазин на Perl (на Mojolicious). Хотелось бы спросить, стоит ли оформить магазин в инсталлятор с стандартным скином и эталонным набором и выложить его на CPAN под GPL ?

anonymous
()
Ответ на: комментарий от flareguner

Я хочу вместо табуляций или пробелов было {}

И всю программу в одну строку?

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от q0tw4

язык для профи онли

Может, для профи-онли задач он и профи-онли, а для простых задач хватает легко осваиваемого подмножества языка. Я вообще ни одним местом не программист, но свои задачи с несложной обработкой текстов очень легко на нём начал решать. Первый скрипт был просто пачкой регулярок, последовательно автозаменяющих всякий шлак. Потом по мере надобности начал осваивать что-то ещё. Сэкономил такой «малой автоматизацией» уже кучу часов жизни себе и коллегам, не обращаясь за помощью к специалистам.

massimus ★★★
()
Ответ на: комментарий от anonymous

Всех поздравляю! Как символично ибо вчера закончил интернет-магазин на Perl (на Mojolicious). Хотелось бы спросить, стоит ли оформить магазин в инсталлятор с стандартным скином и эталонным набором и выложить его на CPAN под GPL ?

Добавлю что не вижу особого смыла это делать потому что написан на Mojolicious (достаточно быстро можно сделать на нем любой другой магазин).

anonymous
()
Ответ на: комментарий от drBatty

index[array]

Мой мир рухнул когда я увидел это. Лет 6 назад.
Не понимаю чем плоха такая прямая и чистая реализация. Всё ясно и просто.

fero ★★★★
()
Ответ на: комментарий от KennyMinigun

Я бы наоборот убрал все end

ну дык :)

Лично меня больше всего радует подход в хаскел и go: там есть опциональные скобочки. Или наоборот: там есть опциональное выделение блоков отступами. Кому как :)

true_admin ★★★★★
()
Ответ на: комментарий от matumba

а его ООП возможности обгоняют даже C#, сближаясь скорее со смоллтоком, чем с коСтылями++.

Толсто же.

Может расскажете про Moose и прочие костыли для достижения инкапсуляции (например non-static private атрибутов)? А как прекрасно реализовано наследование через @ISA. Полиморфизм, в связи в этим, тоже нервно курит в сторонке.

Perl 5 не умеет ООП, Perl 5 его эмулирует. Но.. хоть с функциональной и процедурной частью всё в порядке.

KennyMinigun ★★★★★
()
Ответ на: комментарий от EnterpriseMobility

PHP чересчур адекватен к говнокнструкциям

fixed.

KennyMinigun ★★★★★
()
Ответ на: комментарий от fero

Если глубже копнуть то if костыль для jnz, ja etc.

And we need to go deeper.

Ассемблер - костыль поверх микрокоманд.

KennyMinigun ★★★★★
()
Ответ на: комментарий от KennyMinigun

Perl 5 не умеет ООП, Perl 5 его эмулирует. Но.. хоть с функциональной и процедурной частью всё в порядке.

...и эмулирует вполне не плохо, а кому мало есть еще Moose и иже с ним )

anonymous
()
Ответ на: комментарий от flareguner

Ну если писать не пойми как, да, могут и обломать.

SAA ★★★
()
Ответ на: комментарий от router

Кстати, за что я люблю Python, так это за то что я, не будучи программистом, могу заставить комп решить задачу анализа данных любой сложности. Python достаточно высокоуровневый, чтобы им мог пользоваться простой админ. И мочь ставить компу произвольные задачи, вместо того чтобы искать готовый софт как школота/скрипткиддисы.

За Python!

Fixed for great justice.

border-radius
()
Ответ на: комментарий от border-radius

А еслиб ты знал Perl, не пришлось бы ручками заменять все вхождения 'Perl' из сообщения. Да ты и не захотел бы ничего менять, ведь «Perl makes you happy!». Задумайся ;)

fero ★★★★
()
Ответ на: комментарий от router

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

>>> print u"депутат"[::-1]
татупед

border-radius
()
Ответ на: комментарий от fero

А еслиб ты знал Perl, не пришлось бы ручками заменять все вхождения 'Perl' из сообщения.

Если бы мне это каким-то боком понадобилось автоматизировать, я бы не стал даже из браузера выходить, а нажал бы F12 и быстро сделал бы это в JS-консоли.

border-radius
()

Live Fast, Die Young. Желаю ему вступить в клуб 27.

Nebuchadnezzar ★★★★
()
Ответ на: комментарий от border-radius

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

Ну, если сравнивать ЯП по критерию «а вот у этого языка есть закорючка, для которой в других языках нужно вызывать уйму неочевидных функций», то тут perl будет одним из лидеров.

ugoday ★★★★★
()
Ответ на: комментарий от border-radius

Странный ты какой-то. Рассказывал в таком тоне, что сейчас киллерфичу покажешь, а на деле оказалось ничего особенного.

shell-script ★★★★★
()
Ответ на: комментарий от helios

Код — на VCS, ссылку — сюда: тогда можно будет и думать :)

Код писался под проект поэтому в том виде в каком он сейчас - выложить нереально. Поэтому и речь про то что надо сделать инсталлятор со стандартным интерфейсом и эталонным набором товаров. Пока лишь пытаюсь соотнести «за» и «против» а то может получиться что очередная 100500-ая поделка так и останется лежать локально ..

anonymous
()
Ответ на: комментарий от ugoday

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

border-radius
()
Ответ на: комментарий от border-radius

>>> print u"депутат"[::-1]

Это отстой.

А вот тут все куда прозрачнее:

perl -E'print reverse split //, "депутат"'
татупед

anonymous
()
Ответ на: комментарий от anonymous

Молодец. А теперь возьми символы в перевёрнутой строке через один. У меня это так:

>>> print u"депутат"[::-2]
ттпд
Или со смещением:
>>> print u"депутат"[-2::-2]
ауе

border-radius
()
Ответ на: комментарий от drBatty

Когда-то давно в линуксе и гуя не было, что ж теперь?

Oleaster ★★★
()
Ответ на: комментарий от border-radius

>>> print u"депутат"[::-2]
ттпд

perl -e'print reverse grep {++$i%2} split //, "депутат"'
ттпд

>>> print u"депутат"[-2::-2]
ауе

perl -e'print reverse grep {$i++%2} split //, "депутат"'
ауе

Че ты мне какую-то шнягу подсовываешь. А давай я тебе задание дам: выводи каждую четную позицию и все цифры в осортированном (по сравнению строк) порядке:

perl -e'print sort {($a cmp $b)} grep {$i++%2 or /\d/o} split //, "He1lo, p3r1-H4X0R !1!"'//, "He1lo, p3r1-H4X0R !1!"'
 ,-011134elpr
anonymous
()
Ответ на: комментарий от fero

TIMTOWTDI

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

Perl красивый язык.

«Perl makes you happy!» когда ты пишешь что-то своё да,

когда у тебя полностью не документированный велосипед на 15К+ строк выполненный одним громадным куском с множественным наследованием модулей, динамическим созданием потомков через eval package, без инкапсуляции и малейшего намека на автоматическое тестирование, когда страшно что-то исправить, потому что ошибка выплывет через пару месяцев и искать её просто заебешься - увы нет, в таких случаях perl makes you cry

я с уважением отношусь к perl и его создателям язык сыграл значительную роль в истории, но сегодня я склоняюсь к тому, что perl это write-only язык и уступает совершенно заслуженно.

я не знаком с python, но прочитав сейчас The Zen of Python (http://www.python.org/dev/peps/pep-0020/) думаю что обязательно познакомлюсь с ним. эти концепции гениальны, это именно то, о чем я думаю работая над «своим» perl-проектом

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.