The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз интерпретатора языка программирования Perl 5.20

27.05.2014 18:55

После года разработки представлена новая стабильная ветка языка программирования Perl - 5.20. При подготовке нового выпуска было изменено около 470 тыс. строк кода, изменения затронули 2900 файлов, в разработке приняли участие 124 разработчика.

Ветка 5.20 выпущена в соответствии с утверждённым четыре года назад фиксированным графиком разработки, подразумевающим выпуск новых стабильных веток раз в год и корректирующих релизов - раз в три месяца. Примерно через месяц планируется выпустить первый корректирующий релиз Perl 5.20.1, в котором будут исправлены наиболее значительные ошибки, выявленные в процессе внедрения Perl 5.20.0. Одновременно с выходом Perl 5.20 прекращена поддержка ветки 5.16, для которой в будущем могут быть выпущены обновления только в случае выявления критических проблем с безопасностью. Также начался процесс разработки экспериментальной ветки 5.21, на базе которой в мае 2015 года будет сформирован стабильный релиз Perl 5.22.

Ключевые улучшения, добавленные в Perl 5.20:

  • Экспериментальная поддержка сигнатур функций, позволяющих явно определить перечень переменных, используемых в функции и автоматизировать операции проверки и присвоения значений из массива входящих параметров. Для активации поддержки сигнатур функций необходимо указать директиву "use feature 'signatures'"; Например, ранее используемый код:
    
        sub foo {
            die "Too many arguments for subroutine" unless @_ <= 2;
            die "Too few arguments for subroutine" unless @_ >= 2;
            my($left, $right) = @_;
            return $left + $right;
        }
    

    при использовании сигнатур может быть заменён на:

    
        sub foo ($left, $right) {
            return $left + $right;
        }
    

    При вызове foo с числом аргументов, отличным от двух, интерпретатор выведет ошибку. Синтаксис сигнатур также позволяет указывать необязательные аргументы и задавать значения, используемые по умолчанию в случае отсутствия аргумента. Например, указав "sub foo ($left, $right = 0)" второй аргумент становится необязательным и при его отсутствии передаётся значение 0. В операции присваивания можно указать произвольное выражения, в том числе с использованием других переменных из списка или глобальных переменных. Указание вместо переменной хэша или массива (например, "sub foo ($left, @right)") приведёт к возможности передачи одного и более аргументов.

    В списке также поддерживается специальная переменная "$", которая позволяет игнорировать часть аргументов, например, "sub foo ($left, $, $right)" позволит выполнить копирование в переменные только первого и третьего аргумента, при этом в функцию необходимо передать ровно три аргумента. Возможность обращения к параметрам через массив "@_" сохраняется, поэтому второй аргумент можно получить как значение "$_[1]";

  • Для определения прототипов функций, предоставляющих средства для проверки аргументов на этапе компиляции, а не в процессе выполнения, обеспечена поддержка атрибута ":prototype", например, теперь можно указать "sub foo :prototype($$);" вместо "sub foo ($$);". "$$" подразумевает вызов с двумя аргументами. Для определения типа аргумента могут использоваться такие символы, как "$" (переменная), "@" (массив), "+" (ссылка на массив или хэш), "*" (файловый десктиптор). Для отделения обязательных аргументов от опциональных используется знак ";". Для прототипов функций допускается указание сигнатур, например, "sub foo :prototype($$) ($left, $right)";
  • Функция rand() переведена на использование для всех платформ более качественного последовательного генератора псевдослучайных чисел drand48(). Ранее 48-битовый генератор псевдослучайных чисел использовался только для POSIX-систем, таких как Linux, а в Windows применялась менее безопасная 15-битная реализация;
  • Новый синтаксис для операции выделения части хэшей и массивов (slice) - %hash{...} и %array[...], при использовании которого (например, "%subset = %hash{'foo', 'bar'};" или "@list = %a[3,4,6];") возвращается список из пар ключ/значение или индекс/значение;
  • Добавлена экспериментальная операция постфиксного разыменования (postderef). Например, операция "$sref->$*" эквивалентна "${ $sref }", "$aref->@*" аналогична "@{ $aref }", а "$href->%{ ... }" можно использовать вместо "%$href{ ... }". Для активации поддержки необходимо указать директиву "use feature 'postderef_qq'";
  • Поддержка Unicode 6.3. Для регулярных выражений добавлена поддержка маски "\\p{Unicode}", которая является синонимом "\\p{Any}" и срабатывает для кодов символов в диапазоне 0 - 0x10FFFF.
  • Директива "use locale" теперь может применяться с локалями UTF-8 (ранее с "use locale" поддерживались только однобайтные локали), а также на системах без локали. Обеспечена возможность отката на локаль "C" в случае возникновения проблем с инициализацией выбранной локали. Добавлена опция "-DL" для отслеживания настроек локали в процессе запуска интерпретатора;
  • Специальные переменные $a и $b включены в список исключений при выводе предупреждений, что позволяет создавать функции, оперирующие переменными $a и $b, по аналогии с функцией sort;
  • Улучшена работа на 64-разрядных платформах. Внутренние функции работы с массивами переведены на использование 64-разрядных смещений, что позволяет создавать массивы, содержащие более 2^31 элементов. Движок регулярных выражений теперь может работать со строками длиннее 2^31 символов. Функции PerlIO_get_bufsiz, PerlIO_get_cnt, PerlIO_set_cnt и PerlIO_set_ptrcnt переведены с типа int на тип SSize_t;
  • Объявлены устаревшими и скоро будут исключены из базовой поставки модули CGI и Module::Build, а также связанные с ним модули иерархии CGI::* и Module::Build::*. Данные модули нужно будет устанавливать из архива CPAN. В будущем также ожидается удаление утилит find2perl, s2p и a2p;
  • Многопоточность средствами интерпретатора ("use threads") переведена в разряд не рекомендованных возможностей из-за усложнённой, недостаточно быстрой и легко приводящей к ошибкам реализации. Удаление текущей реализации пока не планируется, но при появлении более оптимальных альтернатив она будет переведена в разряд устаревших;
  • Активирован новый copy-on-write механизм копирования строк, при котором непосредственное копирование в новый буфер производится при попытке изменить строку, но не при назначении переменных, что заметно увеличивает эффективность работы со строками и избавляет от необходимости передачи строки в форме указателя. Добавлены дополнительные оптимизации в код сопоставления масок в движке регулярных выражений и реализацию массивов и хэшей;
  • В поставку добавлен новый модуль IO::Socket::IP, предоставляющий универсальную поддержку сокетов, работа с которыми не отличается для IPv4 и IPv6.


  1. Главная ссылка к новости (http://perlnews.org/2014/05/pe...)
  2. OpenNews: Релиз интерпретатора языка программирования Perl 5.18
  3. OpenNews: Языку Perl исполнилось 25 лет
  4. OpenNews: Доступен интерпретатор языка программирования Perl 5.16
  5. OpenNews: Архиву Perl-модулей CPAN исполнилось 16 лет
  6. OpenNews: Релиз Perl 5.14
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/39865-perl
Ключевые слова: perl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (64) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 19:31, 27/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    > Экспериментальная поддержка сигнатур функций

    Шел 2014-й год.

     
     
  • 2.2, Аноним (-), 19:44, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • –10 +/
    Perl застраял в 20 веке
     
     
  • 3.3, свободный бздун (?), 19:49, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Молодой человек, вы ничего не понимаете! Это же — классика!
     
     
  • 4.7, Anonymus (?), 20:23, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Я тоже не пойму зачем портить классику. Придумали же вон, LLVM, любой школьнег теперь может любой язык себе замастырить.
     
  • 3.27, kurokaze (ok), 23:53, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Ты его просто не с той стороны применял, вот он и "застраял"
     
  • 2.4, Аноним (-), 20:06, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Директива "use locale" теперь может применяться с локалями UTF-8 (ранее поддерживались только однобайтные локали)

    Это круче в 2014-м

     
     
  • 3.30, vsespb (ok), 00:06, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Не знаете, наверное, о чём говорите. Эта use locale на практике не используется обычно. И её поддержка к поддержке unicode и всего хорошего, что с ним связано, не имеет отношения. Так же почитайте внимательно что именно с ней сделали https://metacpan.org/pod/distribution/perl/pod/perldelta.pod#use-locale-now-wo (если perl знаете)
     
  • 2.8, angra (ok), 20:30, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +8 +/
    И наконец-то сжалились над товарищами с квадратно-гнездовым мышлением, приходящими с других ЯП, и запилили для них костыль. Осталось добавить в ядро какую-нибудь надстройку над ООП вроде moo, а то дефолтное ООП беднягам тоже мозг выносит.
     
     
  • 3.10, freehck (ok), 20:38, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    В общем-то да, это ведь всего-то лишь синтаксический сахар. К тому же, парсинг параметров при помощи @_ на мой взгляд есть штука куда более гибкая, чем может то предложить сигнатурная модель объявления функции.
     
     
  • 4.39, еще 1 аноним (?), 09:08, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    И более запутанная. Пример наглядно показывает как 4 строчки вырождаются в 1 (понятно что в откомпиленном те же 4 строчки и остались). На мой взгляд сигнатурный способ позволяет уже на этапе написания избежать кучи ошибок. Но заметьте, никто старый способ не выпилил, поэтому дело вкуса и необходимости. Хочется писать по-старому / нужно парсить переменное количество аргументов - пишите, никто вам не запрещает
     
     
  • 5.45, Pilat (ok), 12:31, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > И более запутанная. Пример наглядно показывает как 4 строчки вырождаются в 1
    > (понятно что в откомпиленном те же 4 строчки и остались). На
    > мой взгляд сигнатурный способ позволяет уже на этапе написания избежать кучи
    > ошибок. Но заметьте, никто старый способ не выпилил, поэтому дело вкуса
    > и необходимости. Хочется писать по-старому / нужно парсить переменное количество аргументов
    > - пишите, никто вам не запрещает

    Всё равно новая версия перла станет актуальной только через несколько лет - когда до дистрибутивов дойдёт, так что вопрос академический. Да и надо как-то решить вопрос с объявлением параметров с помощью старого Function::Parameters, MooseX::Declare и н ового метода и понять на практике что будет при смешивании этих стилей, что будет видно в отладчиках и профайлерах, что будет делать с тавими функциями EPIC в Eclipse, как будет форматировать perltidy, и куча вопросов которые сходу не приходят в голову. Вообще нововведение выглядит очень хорошим, странно что так долго его вводили.

    Не хватает Best Practice как руководства по новым возможностям перла, что рекомендуется использовать, что нет.

     
     
  • 6.65, Аноним (-), 14:50, 31/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> И более запутанная. Пример наглядно показывает как 4 строчки вырождаются в 1
    >> (понятно что в откомпиленном те же 4 строчки и остались). На
    >> мой взгляд сигнатурный способ позволяет уже на этапе написания избежать кучи
    >> ошибок. Но заметьте, никто старый способ не выпилил, поэтому дело вкуса
    >> и необходимости. Хочется писать по-старому / нужно парсить переменное количество аргументов
    >> - пишите, никто вам не запрещает
    > Всё равно новая версия перла станет актуальной только через несколько лет -
    > когда до дистрибутивов дойдёт, так что вопрос академический.

    Думаю, будет уже в OpenBSD 5.6 (ноябрь 2014) или 5.7 (май 2015). Эта ОС едва ли не больше прочих полагается на Perl; в первую очередь — в подсистеме управлении пакетами.

     
  • 5.46, Q2W (?), 12:45, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вообще-то пример из статьи плохой, т.к. используй прототипы уже 100 лет, как можно написать так:
    sub foo($$)
    {
        my($left, $right) = @_;
        return $left + $right;
    }

    А если экономить на кол-ве строчек, так вообще можно так:
    sub foo($$){shift+shift}

     
     
  • 6.66, Аноним (-), 14:52, 31/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Вообще-то пример из статьи плохой, т.к. используй прототипы уже 100 лет, как
    > можно написать так:
    > sub foo($$)
    > {
    >     my($left, $right) = @_;
    >     return $left + $right;
    > }
    > А если экономить на кол-ве строчек, так вообще можно так:
    > sub foo($$){shift+shift}

    Прототипы были придуманы для другого: не для экономии или удобства, а для возможности создания функциональных аналогов встроенным функциям Perl вроде push().

     
  • 5.51, TheAthlete (?), 13:55, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    На самом деле старый способ не выпилили, т.к. парсер не может выявить использование @_ в подпрограммах на этапе компиляции, т.к. некоторые части программы могут определяться только на этапе исполнения. Например, при выполнении eval кода, содержащегося в строке:

    sub foo {
        eval 'say for @_';
    }

    Dave Mitchell также привёл пример с выполнением кода в регулярных выражениях:


    $pat = qr/(?{ print "[$_]\n" for @_ })/;
    sub f($str, $pat) { $str =~ $pat }

    Поэтому пока переменная @_ по-прежнему доступна в функциях с сигнатурой.

    См. http://pragmaticperl.com/issues/13/pragmaticperl-13-сигнатура-функции-в-perl-

     
  • 3.11, Аноним (-), 20:39, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Вам охота в каждой функции вручную проверять количество аргументов, присваивать значения по умолчанию и т. д.? Вам заняться больше нечем? Кроме того, при наличии явной сигнатуры можно проверять правильность вызова функций на этапе трансляции, а не отлавливать ошибки в редко используемых кусках кода во время исполнения.
     
     
  • 4.12, www2 (??), 20:49, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Кроме того, при наличии явной сигнатуры можно проверять правильность вызова функций на этапе трансляции, а не отлавливать ошибки в редко используемых кусках кода во время исполнения.

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

     
     
  • 5.18, Аноним (-), 21:59, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Не помню почему, но perlcritic на них ругается.
     
     
  • 6.22, angra (ok), 23:09, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В доке их тоже рекомендуют не использовать и даже объясняют причины. В первую очередь из-за того, что многие их используют не по назначению, а для этой самой дурацкой проверки количества аргументов.
     
     
  • 7.68, www2 (??), 16:58, 06/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > В доке их тоже рекомендуют не использовать и даже объясняют причины. В
    > первую очередь из-за того, что многие их используют не по назначению,
    > а для этой самой дурацкой проверки количества аргументов.

    Почему же дурацкой? Как perlcritic аргументирует свою неприязнь к такой проверке?

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

     
  • 4.15, angra (ok), 21:24, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >вручную проверять количество аргументов

    Не занимаюсь подобными глупостями.

    >присваивать значения по умолчанию

    Очень редко нужно

    >при наличии явной сигнатуры можно проверять правильность вызова функций на этапе трансляции

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

    Единственное, что мне слегка надоедает писать, это строки типа
    my $self=shift;
    Я даже знаю несколько способов как этого избежать, но применять их мне еще более лениво :)

     
  • 2.17, АнониМ (ok), 21:58, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Шел 2014-й год.

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

    все нововведения окромя возможно copy-on-write со строками в 20 версии имно ниочем.

     

  • 1.5, Аноним (-), 20:07, 27/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    А когда же Perl 6 !?
     
     
  • 2.6, Аноним (-), 20:17, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Когда Perl 6.
     
     
  • 3.13, Аноним (-), 21:01, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Это что же, не раньше, чем Perl 6?
     
  • 2.9, angra (ok), 20:32, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Скорее всего так и останется чисто исследовательским проектом без практической реализации.
     
  • 2.16, Угу (?), 21:37, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В современном мире программное обеспечение становится достаточно большим и сложн... большой текст свёрнут, показать
     
     
  • 3.33, Аноним (-), 04:08, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Запор прямой кишки лечится, не надо так мучиться как ты тут :)
     
  • 2.28, kurokaze (ok), 23:58, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > А когда же Perl 6 !?

    # tail /usr/portage/dev-lang/rakudo/ChangeLog

    [...]
    *rakudo-2009.12 (08 Jan 2010)
      08 Jan 2010; Patrick Lauer <patrick@gentoo.org> +rakudo-2009.12.ebuild

    4 года уже какбы

     
     
  • 3.38, angra (ok), 09:05, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Вот только для практического применения rakudo, как впрочем и остальные реализации, не годится - тормозит просто дичайше. Они с самого начала оправдывались, что сначала сделаем все фичи, а уже потом оптимизации. То, что скорость надо будет поднять минимум на три порядка их не смущало. Последние пару лет оптимизируют. У них даже получилось ускорится на порядок, звучит круто, но только пока не вспоминаешь, что perl5 все еще на два порядка быстрее. Так что в для практиков perl6 скорее всего так и не появится.
     
     
  • 4.48, kurokaze (ok), 12:51, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот только для практического применения rakudo, как впрочем и остальные реализации, не
    > годится - тормозит просто дичайше.

    И чего? Жабка тоже тормозит по сравнению с нативом, а используют.

    > два порядка быстрее. Так что в для практиков perl6 скорее всего так и не появится.

    Тут дело имхо не в скокрости, а в том что народу хватает того что есть. Когда не хватает на скорость плюют.
    Вот на руби жалуются что тормозит, а я например (на локальном core-i7 для своих задач) этого не очущаю


     
  • 3.52, TheAthlete (?), 14:04, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Где вы такое увидели?
    На сайте rakudo.org:

    Announce: Rakudo Star Release 2014.04

    This is the first Rakudo Star release with support for the MoarVM backend (all module tests pass on supported platforms) along with experimental support for the JVM backend (some module tests fail).

    Т.е. они задеплоиили поддержку в качестве бэкэнда MoarVM и экспериментальную поддержку JVM. По-моему неплохо

     

  • 1.14, rob pike (?), 21:02, 27/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >The use of interpreter-based threads in perl is officially discouraged.
     
  • 1.19, Аноним (-), 22:28, 27/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да ладно, вам, зубоскалы!

    Сигнатуры *давно* существовали, просто в качестве необязательных модулей, к-е можно было прикрутить к перлу. Например, https://metacpan.org/pod/Function::Parameters . Кому надо - использовал, кому не надо - не использовал.

    Сейчас это в ядре перла сделали очень аккуратно, чтобы не поломать обратную совместимость, т.е. чтобы код 25-летней давности продолжал работать на современной версии интерпретатора.

     
     
  • 2.29, kurokaze (ok), 23:59, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Сейчас это в ядре перла сделали очень аккуратно, чтобы не поломать обратную
    > совместимость, т.е. чтобы код 25-летней давности продолжал работать на современной версии интерпретатора.

    бидонистам этого не понять, для них это ересь


     
     
  • 3.31, Аноним (-), 01:23, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >бидонистам этого не понять, для них это ересь

    Orly? а ЧЕГО ЖЕ ТОГДА :
    >>прекращена поддержка ветки 5.16

    дЖва года прошло - и снова всё переписывай?

     
     
  • 4.32, rob pike (?), 01:39, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >прекращена поддержка ветки 5.16

    Это означает что не будет 5.16.4, 5.16.5 и так далее.

     
     
  • 5.34, Аноним (-), 04:11, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >>прекращена поддержка ветки 5.16
    > Это означает что не будет 5.16.4, 5.16.5 и так далее.

    Ну я и говорю - как и в питоне, уже нет 1.*, 2.[123].* ...

     
     
  • 6.36, chinarulezzz (ok), 05:09, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +9 +/
    версий нет, но код то есть. И этот код сам не перепишется под новые версии питона 3.*, 4.*, 5.*, а в перле и переписывать не надо, всё и так работает.
     
     
  • 7.60, Аноним (-), 17:27, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > версий нет, но код то есть. И этот код сам не перепишется
    > под новые версии питона 3.*, 4.*, 5.*, а в перле и

    _как_и_в_перле_ :)
    > переписывать не надо, всё и так работает.

    И не надо звиздеть что оно само. А если "с лёгким напильником" - дык и у змеев есть 2->3 конвертер и тоже почти работающий :)))


     
     
  • 8.61, Аноним (-), 17:39, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты не уловил снова Идет развитие ветки 5 xx - это значит код в версии 5 xx рабо... текст свёрнут, показать
     
  • 6.49, kurokaze (ok), 12:54, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну я и говорю - как и в питоне, уже нет 1.*,
    > 2.[123].* ...

    Когда вы говорите, такое впечатление что вы бредите (с)

    dev-lang/python
         Available versions:  
         (2.6)  [M]2.6.8-r3 [M]~2.6.9
         (2.7)  2.7.5-r3 ~2.7.5-r4 2.7.6 ~2.7.6-r1
         (3.2)  3.2.5-r3 ~3.2.5-r4
         (3.3)  3.3.2-r2 3.3.3 ~3.3.4 ~3.3.5
         (3.4)  ~3.4.0_rc1 ~3.4.0_rc3 ~3.4.0

    [I] dev-lang/perl [...] 5.16.3(0/5.16)

     
     
  • 7.59, Аноним (-), 17:24, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Мухаха :) Выучи регекспы перловка ! :)
     
  • 3.41, Аноним (-), 10:53, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Еще как понять. Ты же не думаешь, что на python3 только из-за тормозов никто не переходит?
     

  • 1.35, Аноним (-), 04:20, 28/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Поздравляю перловщиков!
    Хоть сам уже юзаю редко, но приятно что не бросили :)
     
  • 1.37, Аноним (37), 08:04, 28/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я так понял что модули CGI::* уходят в собственный цикл разработки и останутся?
    Или замена на нечто другое?
     
     
  • 2.44, Pilat (ok), 12:23, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Я так понял что модули CGI::* уходят в собственный цикл разработки и
    > останутся?
    > Или замена на нечто другое?

    Да просто сама модель web-сервисов как CGI скриптов уходит из моды, Mojolicious отлично маскирует всю CGI обработку, да и писать на нём проще чем создавать кучу CGI. Я уже и забыл когда нужен был CGI.pm .

     
     
  • 3.53, Филимон Задумчивый (?), 14:24, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Catalyst ещё круче
     
     
  • 4.54, Pilat (ok), 14:32, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Catalyst ещё круче

    Принципиального значения не имеет, В любом случае CGI нечасто сейчас используется.

    Кстати, насчёт "круче" - а где об этом почитать можно? Сравнение. Пока я знаю только то, что Catalist включает Moose и DBIC - что с моей точки зрения минус, а не плюс.

     
     
  • 5.55, Andrey Mitrofanov (?), 14:52, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Кстати, насчёт "круче" - а где об этом почитать можно? Сравнение. Пока

    Ну, %D почитай modernperlbooks.com/mt/2014/01/the-limits-of-a-programming-language-vision.html

    > я знаю только то, что Catalist включает Moose и DBIC -

     
     
  • 6.56, Pilat (ok), 14:54, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> Кстати, насчёт "круче" - а где об этом почитать можно? Сравнение. Пока
    > Ну, %D почитай modernperlbooks.com/mt/2014/01/the-limits-of-a-programming-language-vision.html

    Там разве про Catalist vs Mojolicious ?


     
     
  • 7.57, Andrey Mitrofanov (?), 15:14, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Там разве про Catalist vs Mojolicious ?

    Там про то, то реагировать на "Catalyst ещё круче" вопросом "где об этом почитать" в новости про релиз перла неправильно. Или я опять тэги пропустил.

     
     
  • 8.58, Pilat (ok), 15:17, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если встретился человек, знающий что Catalist круче Mojo, грех не спросить ... текст свёрнут, показать
     

  • 1.40, Аноним (-), 09:20, 28/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Т.е. threads deprecated, но взамен пока ничего достойного нет?
     
     
  • 2.42, angra (ok), 11:32, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Давно уже есть Coro
     
  • 2.43, rob pike (?), 11:34, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    POE, Coro, AnyEvent, и еще пара десятков модулей.
     
     
  • 3.67, Antonio (??), 17:49, 04/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    show me queues at "POE, Coro, AnyEvent, и еще пара десятков модулей." plz
     
     
  • 4.70, Аноним (-), 23:37, 10/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Coro::Channel, у POE и AnyEvent вообще другая модель, если нужна именно многопоточность, то есть forks - эмулирующий все апи threads на нормальных форках, т.к. threads это эмуляция форков для венды.
     
  • 2.47, Аноним (-), 12:46, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Там же написано, пока не deprecated.
     

  • 1.50, Антуан (?), 13:13, 28/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Байки из склепа.
     
     
  • 2.63, Аноним (-), 18:01, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    дурачёк.
     

  • 1.62, Kodir (ok), 17:39, 28/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эх, стоило не пописать на Перле лет 10, как уже совсем другие вещи! Coro, Catalist, сигнатуры... Надо освежить память и написать очередной многопоточный веб-сервер.
     
     
  • 2.64, Аноним (-), 19:25, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >очередной многопоточный веб-сервер

    Mojo::Server::Hypnotoad

     

  • 1.69, iZEN (ok), 20:34, 02/12/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Стоит ли переходить с Perl 5.18 на 5.20?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру