LINUX.ORG.RU

Perl 5.22.0

 


0

4

Вышла новая значительная версия популярного языка программирования Perl. Основные изменения:

  • Модули CGI и Module::Build убраны из стандартной поставки.
  • Новые битовые операторы для работы со строками: &. |. ^. ~. &= |= ^= &.= |.= ^.=
  • Новый оператор <<>>, работающий как <>, но не обрабатывающий спецсимволы в именах файлов.
  • Новый модификатор регулярных выражений: /n, не позволяющий заполнение скаляров $1, $2 и т.д. для групп метасимволов:
    "hello" =~ /(hi|hello)/;   # $1 is "hello"
    "hello" =~ /(hi|hello)/n;  # $1 is undef
    
  • Новый оператор регулярных выражений: \b
  • Добавлена директива use re 'strict', включающая «строгий» режим для регулярных выражений.
  • Добавлена поддержка Unicode 7.0
  • Вызов prototype() без аргумента теперь использует $_
  • fileno теперь работает с дескрипторами директорий.
  • Новый атрибут :const для анонимных функций.
  • Теперь Perl по умолчанию собирается с -fstack-protector-strong и -D_FORTIFY_SOURCE=2
  • Конвертирование бесконечных чисел и NaN в символы (с помощью pack, «chr» и printf «%c») теперь невозможно.
  • Модуль Safe обновлён до версии 2.38 с исправлением критической уязвимости.
  • Пустой срез списка отныне будет возвращён только в том случае, если список был пустым.
  • Числа с плавающей точкой отныне могут содержать бесконечность (как отрицательную, так и положительную) и NaN.
  • Добавлена поддержка шестнадцатеричныхлитералов с плавающей точкой (например, 0x1.23p-4).
  • Действие прагмы use encoding теперь ограничено лексической областью.
  • Импортирование функций через use UNIVERSAL '...' теперь приводит к ошибке.
  • Многочисленные улучшения производительности, обновления входящих в стандартную поставку модулей и многое другое.

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



Проверено: fallout4all ()
Последнее исправление: cetjs2 (всего исправлений: 5)

Фига тут бомбануло у анонимуса от критики спагетти-кода. Никак не ожидал, что аж до защиты goto дойдёт. Тред — годнота!

P.S.: если бы перловый проект на полмиллиона+ LOC, с которым я в последнее время работаю, был написан в этом вот стиле (с `?:` и `and` вместо if/else, unless и т.д., см. выше), проще было бы его выкинуть и написать снова. Хотя там и так очень много печали и беды. Я лет 10 назад, кстати, был защитником конструкций `test and action` во избежание постфиксных условий, но сейчас понимаю, что это от беспомощного синтаксиса конкретного ЯП. Синтаксис здорового ЯП а) не мешает и б) не дает лишних соблазнов. Perl5 трудно упрекать в чем-то, он вырос из шелловой каши. Но когда человек яростно защищает эту кашу как оптимальную и демонстрирует умение подковать блоху через задницу ламантина, называя «неосиляторами» тех, кто предпочитает более практичные занятия, — возникает некоторое недоумение.

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

Фига тут бомбануло у анонимуса от критики спагетти-кода. Никак не ожидал, что аж до защиты goto дойдёт. Тред — годнота!

P.S.: если бы перловый проект на полмиллиона+ LOC, с которым я в последнее время работаю, был написан в этом вот стиле (с `?:` и `and` вместо if/else, unless и т.д., см. выше), проще было бы его выкинуть и написать снова. Хотя там и так очень много печали и беды. Я лет 10 назад, кстати, был защитником конструкций `test and action` во избежание постфиксных условий, но сейчас понимаю, что это от беспомощного синтаксиса конкретного ЯП. Синтаксис здорового ЯП а) не мешает и б) не дает лишних соблазнов. Perl5 трудно упрекать в чем-то, он вырос из шелловой каши. Но когда человек яростно защищает эту кашу как оптимальную и демонстрирует умение подковать блоху через задницу ламантина, называя «неосиляторами» тех, кто предпочитает более практичные занятия, — возникает некоторое недоумение.

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

Да, я заступился за goto потому что знаю когда и где его нужно, а когда не нужно его использовать. Вы, похоже, не знаете этого.

Да, я называю неосиляторами всех кто не просто запинается о незнакомые конструкции, а вместо того чтобы приложить минимум усилии чтобы понять начинает выдвигать претензии ко всему второстепенному, но только не себе. Я легко беру конструкции с :?, LABEL:{redo,next,last}, given/when, action if exp, if(exp){action}, expr && action, expr // action и другие. Надутся новые конструкции в perl или другом языке - для меня не проблема их осилить. И постараюсь осилить так что снова глаз будет «на лету» сканировать подобные конструкции. А ваша позиция ущербна, я такое не принимаю ибо это лузерство.

Итого, если учесть что ваши предпочтения и позиция ни чуть не более весомее чем мои, то ваши субъективное отношение такие как «спагетти-код», «это от беспомощного синтаксиса конкретного ЯП» и подобное можно смело умножать на нуль. Но я не уверен что вы это способны понять и принять. Да о чем вообще может быть речь, если у людей «гибкость ума» такая что они спотыкаются уже на уровне синтаксиса (то есть представления) кода.

И тем не менее, как я помножил ваши предпочтения и отношения в нуль, так и вы можете поступить с моими доводами.

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

так что, ребята, будет нормальный бравзер на «супермощном яп без слабых мест» или нет?

Нет, не будет. На перле новые проекты не делают, перл - мёртв.

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

так что, ребята, будет нормальный бравзер на «супермощном яп без слабых мест» или нет?

Нет не будет.

Профинансируй разработку и будет.

Не будет. Перефразируя «Dangerouse at any speed» - неосилят за любой бюджет.

Либо сиди и жди, вдруг появится.

Оно уже пахнет. Ждать пока вонь станет невыносимой? Закапываете!

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

Вот недавно был тут один который доказывал что modperl не нужен под apache потом же он сам привел ответ на мой вопрос пример с использованеим modperl.
Он просто сбежал с темы, а я время потратил. Знаете в чем разница? - Он получил
информацию к размышлению, а я потратил время. То есть по факту я остался в дураках.

О хопыди. Там даже жёлтые цыплята всё поняли - не нужен там модперл, ну как тебе ещё объяснит то - не нужен напрочь! А в дураках ты остался по одной единственной и совсем другой причине. Потому что ты и есть дурак. Прими и смирись, бывает.

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

https://gist.github.com/anonymous/323642c4e82a750a99b4
bananym

О писькомерка! Это я люблю, вотЪ: $ perl perl_string_bench.pl lenght: 65536 Rate an1 an2 an3 ban reg an1 21.5/s  — -43% -49% -75% -95% an2 38.0/s 77%  — -9% -55% -91% an3 41.9/s 95% 10%  — -50% -90% ban 84.6/s 294% 123% 102%  — -80% reg 426/s 1880% 1021% 916% 403% --

HW: Intel Core2 Quad CPU Q9400 @ 2.66GHz

$ perl -v This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-gnu-thread-multi (with 89 registered patches, see perl -V for more detail)

$ cat /etc/debian_version 7.8

Но правда: $ uname -a Linux ЙУХ 3.16.0-0.bpo.4-amd64 #1 SMP Debian 3.16.7-ckt9-3~deb8u1~bpo70+1 (2015-04-27) x86_64 GNU/Linux

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

Внимание: прочитайте описание разметки LORCODE

$ perl perl_string_bench.pl
lenght: 65536
      Rate   an1   an2   an3   ban   reg
an1 21.5/s    --  -43%  -49%  -75%  -95%
an2 38.0/s   77%    --   -9%  -55%  -91%
an3 41.9/s   95%   10%    --  -50%  -90%
ban 84.6/s  294%  123%  102%    --  -80%
reg  426/s 1880% 1021%  916%  403%    --
anonymous
()
Ответ на: комментарий от anonymous

Если просто включить логику и все же допустить что я дурак который легко разбирает и не испытывает баттхерт от синтаксических конструкции представления кода, то вы то кто? :-) Просто лол.

Я понимаю что у тебя сильно ущемлено ЧСВ потому что ты сильно облажался с ответом, но я тебя уверя что не стоит так сильно переживать и демонстрировать свою глупость через флуд. Таких как ты тьма кругом, ты очень обычный, с обычными умственными способностями и не научен точно вести обстоятельный разговор.

Ну и конечно же, плевать я хотел на таких как ты и ваше мнение: элементарное понимание того какого уровня решения является apache и знание того какие воможности дает modperl гораздо важнее. чем буковки какого-то очередного форумного лоха в интернете с ущемленным ЧСВ. Просто отстань, заколебал.

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

Теперь мне ясно чего ты хочешь, спасибо что объяснил, а на цитаты из Жванецкого обижаться не надо.

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

Убери «/o» в рексе. Или надо переписать все остальные примеры с use Memoize для index/vec и т.п.

Вообще, все тесты можно было свести к:

index $str, "\n";
# vs
$str =~ /\n/;

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

надо переписать все остальные примеры с use Memoize для index/vec и т.п.

спасибо, смеялся до слёз )

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

Убери «/o» в рексе. Или надо переписать все остальные примеры с use Memoize для index/vec и т.п.

О чем это вы? Вы точно понимаете что делает /o и Memoize ?

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

ИМХО, нечестно прогонять бенч, когда //o компилится раз и дальше он никогда не перекомпиливается. Т.о. из 10000 тестов, только 1 отрабатывает за желаемое время. Если сделать иначе, например, выбрасить код в отдельный файл, а дальше запускать его 100 тыс. раз через do $file. Тогда, рексп будет компилится на каждый тест и при этом на операции, когда реально отрабатывает функция (скажем цикл while ( /\n/gso ) рексп будет использовать 100% своих возможностей.

Да чего я рассказываю, вам-то, профессионалам, виднее.

P.S. Мое мнение исходит из того, что неважно где в коде и как именно прописать рексп //o. Если он где-то отработал раз, то перл его кэширует и никогда из ОЗУ не выкидывает.

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

нечестно прогонять бенч, когда //o компилится раз

Так добавьте в начале скрипта

'' =~ /\G(\w+)/o;
если считаете, что компиляция как-то сильно влияет

Если сделать иначе, например, выбрасить код в отдельный файл, а дальше запускать его 100 тыс. раз через do $file.

Сделаете или снова в туман отдыхать?

---

Раз отдохнули, то расскажете про какие-то еще неудобства использования «substr/index»?

реально не оч. удобно во многих случаях.(Perl 5.22.0 (комментарий))

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

Раз отдохнули, то расскажете про какие-то еще неудобства использования «substr/index»?

Начнем с того, что никто не привел чистый пример без единого регепса :)

Для примера, можете поковырять Net::Telnet. Вы можете запилить форк на рекспах, если осилите.

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

Начнем с того, что никто не привел чистый пример без единого регепса :)

Вы писали

Ну, как пример, это поиск всех \n(может быть любой символ) в киллометровых строках с последледующими действия, типа выдерания строк/слов/букв исходя из этих точек.

На ваш пример «навскидку» я продемонстрировал примеры поиска позиции без использования названных substr и очевидного index. Unpack и vec используются для поиска позиции «в километровых строках» а вот регексп - это уже «последующее действие». Я ведь в «последующем действии» вместо регекспа я там мог просто написать do_something(), это не существенно. Но вы решили все же зацепиться за несущественное и теперь пытаетесь апеллировать к этому. Вы тоже школьник?

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

ИМХО, нечестно прогонять бенч, когда //o компилится раз и дальше он никогда не перекомпиливается. Т.о. из 10000 тестов, только 1 отрабатывает за желаемое время. Если сделать иначе, например, выбрасить код в отдельный файл, а дальше запускать его 100 тыс. раз через do $file. Тогда, рексп будет компилится на каждый тест и при этом на операции, когда реально отрабатывает функция (скажем цикл while ( /\n/gso ) рексп будет использовать 100% своих возможностей.

Да чего я рассказываю, вам-то, профессионалам, виднее.

P.S. Мое мнение исходит из того, что неважно где в коде и как именно прописать рексп //o. Если он где-то отработал раз, то перл его кэширует и никогда из ОЗУ не выкидывает.

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

Да чего я рассказываю, вам-то, профессионалам, виднее.

Поэтому прошу вас больше не вводить людей в заблуждение, т.к. ВЫ НЕ ЗНАЕТЕ КАК ЭТО РАБОТАЕТ.

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

У grep'а регекспы быстрее или нет?

Утилита grep реализует perl-style регекспы используя libpcre. Используя perl можно уменьшить сложность(reduce difficulty) регулярок и тем самым добиться прироста производительности в разы или десятки раз.

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

Вы либо рассказывайте как работает и что происходит, либо не трогайте.

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

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

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

На ваш пример «навскидку» я продемонстрировал примеры поиска позиции без использования названных substr и очевидного index.

Какой именно ваш пример здесь? Вот эта порнография это разве не регепс?

while() {
...
 $str =~ /\G(\w+)/o
   and ( push( @result, [ $i => $1 ] ), $i += length $1, ); 
}
Обратили внимание на цикл? Нет? Если это «последующее действие», то что оно делает в бенче? Давайте закинем в бенч еще вызов `uname -a` для прикола.

Я ведь в «последующем действии» вместо регекспа я там мог просто написать do_something(), это не существенно.

Что меряет этот бенч тогда, если в нем столько треша?

И если нужна реальная критика, то бенч на чистый рекс уже выигрывает все другие, просто потому, что в нем нет таких «последующих действий».

gh0stwizard ★★★★★
()
Последнее исправление: gh0stwizard (всего исправлений: 2)
Ответ на: комментарий от anonymous

В перле тоже libpcre, или это альтернативная реализация?

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

PCRE (libpcre) сокращенно от «Perl Compatible Regular Expressions». Регулярки в perl - это оригинал. Собственно, сама perl-нотация регекспов родились именно благодаря perl. libpcre - это не связанная с perl альтернативная реализация, она не полная и отличается местами. По скорости, в общем случае libpcre сопоставима со скоростю работы на perl, я помню когда-то видел тесты где в некоторых случаях libpcre существенно проигрывал от perl.

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

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

за суждениями есть личность и она должна нести ответсвенность, так что все справедливо

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

очень легко показать что вы ошибаетесь, но зачем мне это? И да, вы лучше не пишите то чего не знаете

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

Какой именно ваш пример здесь? Обратили внимание на цикл? Нет? Если это «последующее действие», то что оно делает в бенче?

Вы издеваетесь? Я же писал что мои примеры с unpack и vec. И вообще все ответы есть в этой теме. Примеры работают очень просто: в цикле идет выделение символа и если оно совпадает с «\n», то выполняется «последующее действие» - с найденной позиции выполняется

 $str=~/\G(\w+)/o and (
	push(@result, [$i => $1]),
	$i += length $1,
    );

Ну и если честно: бенчмарк - это не моя идея, но идея хорошая и правильная.

Давайте закинем в бенч еще вызов `uname -a` для прикола.

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

Что меряет этот бенч тогда, если в нем столько треша?

Какого еще треша? Вы что, пьяны?

И если нужна реальная критика, то бенч на чистый рекс уже выигрывает все другие, просто потому, что в нем нет таких «последующих действий».

Вы определенно пьяны (выходные наверное) :-P.

Секрет производительности необычайно прост: в примере «reg» т.н. «последующее действие» оказалось внутри регса :-). Результат выполнения «reg» позволяет нам примерно понять насколько отстают другие, «более гибкие» решения и использованием index, substr, unpack и vec. Я думаю именно из-за этого тов. bananym включил вариант с reg в тесты - чтобы его результаты принять в качестве «абсолютного» значения.

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

Начнем с того, что никто не привел чистый пример без единого регепса :)

Закончим тем, что задача была сформулирована весьма не явно:

Ну, как пример, это поиск всех \n(может быть любой символ) в киллометровых строках с последледующими действия, типа выдерания строк/слов/букв исходя из этих точек.

Как видно условие «поиск всех \n(может быть любой символ)» является тут первичным. Какую либо другую задачу вы сформулировать отказались (в которой

На substr, поддерживая вопрошающего, реально не оч. удобно во многих случаях. (Perl 5.22.0 (комментарий))

) и ушли отдыхать (Perl 5.22.0 (комментарий)).

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

рекомендую взять любой задачник по сишке и попробовать воспроизвести в перле на substr + index

Находите реальные задачи (те, за которые платят или «капает» слава), решайте, делайте выводы.

забавными идеями:

надо переписать все остальные примеры с use Memoize для index/vec и т.п.

или откровенно посылаете:

Для примера, можете поковырять Net::Telnet.

или просто внезапно устаете )

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

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

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

Я думаю именно из-за этого тов. bananym включил вариант с reg в тесты - чтобы его результаты принять в качестве «абсолютного» значения.

Хорошо, пусть будет якобы абсолютное значение. Только к реальности этот бенч не относится.

P.S. Я уже дал пример тов. bananym с Net::Telnet. Если кто-то действительно хочет разобраться с substr + index и почему их не заменить на супер-пупер рекспы (а может и сделаете на злобу мне :), пусть сделает форк. Этого проекта до сих пор нет на CPAN (спустя 4 года как), я его делал для одной компании и код выкладывать не буду, а если и буду, то форкнутую версию (форк форка), дабы избежать конфликтов и допилить еще более высокого уровня (на что у меня пока времени нет). Проект носит чудное название AnyEvent::Telnet. Вперед форкать! Уверен поставят вам 100500 лайков на metacpan за него :)

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

Net::Telnet. Если кто-то действительно хочет разобраться с substr + index и почему их не заменить на супер-пупер рекспы

Сконцентрируйтесь уже ) Вы утверждали, что

На substr, поддерживая вопрошающего, реально не оч. удобно во многих случаях.

Поведайте нам уже хотя бы малую толику этих случаев.

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

Поведайте нам уже хотя бы малую толику этих случаев.

Я уже поведал, что кодить и разбирать код на substr, index мне не приятно. Этот вывод сделан на основе работы, которая использовалась (и, возможно, используется) в «продакшене».

Хотите узнать понравится ли это вам? Ваши «бенчи» мало связаны с реальностью и один раз это не показатель. Я уже дал пример хорошего задания. Не хотите читать код Net::Telnet и разбираться? Ну, так и не занимайтесь. Как я уже говорил изначально: пишите реальный код за деньги и за славу, и делайте собственные выводы. Когда этот момент наступит, тогда и отвечайте, что мол, сделал то-то и то-то, а мне понравилось. И всё, просто ваше мнение может пригодится для последующей статистики, для очередного анона вопрошающего об улучшениях в работе со строкой в Perl. Пока что, я и анон возмутились, 5 человек якобы тащатся от этого :)

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

Я уже поведал, что кодить и разбирать код на substr, index мне не приятно.

Так и интересно разобрать случай некой функциональности, когда аналог на другом языке «приятно» кодить и читать впоследствии. Указывать в качестве такого случая Net::Telnet - это всё равно, что когда спрашивают где находится библиотека, ответить, что она находится в Москве - вроде и ответил, а по сути послал.

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

вроде и ответил, а по сути послал

Не спорю. Вежливо послал составить свое мнение за счет работы за славу (денег может и предложил, но не сейчас). Сами же говорили, что подавайте примеры. Вот пример, настоящий, полезный (а 5 лет назад был вообще неоценимый). Что вы хотите? Свежих задач? Денег? А кто им вам даст, если сделать что-то свое, даже на основе чужих наработок и ошибок вы не желаете? Успехов дождаться удобного случая, дабы составить своё мнение.

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

Не спорю. Вежливо послал составить свое мнение..

да просто послали, без всяких там «составить мнение» )

в общем какое-то очередное «бла-бла-бла...» вместо кода функции на perl и/или другом ЯП в качестве подтверждающего аргумента?

p.s. и хватит уже про славу и деньги, утомили.., скоро тоже отдыхать придётся )

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

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

Я легко определю какой из вариантов лучше, а вы видимо совсем не читаете что вам пишут. Я же писал что «в сравнительном тестировании». А теперь одумайте и обдумайте тщательно. Хватит позориться.

Хорошо, пусть будет якобы абсолютное значение. Только к реальности этот бенч не относится.

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

P.S. Я уже дал пример тов. bananym с Net::Telnet. Если кто-то действительно хочет разобраться с substr + index и почему их не заменить на супер-пупер рекспы (а может и сделаете на злобу мне :), пусть сделает форк. Этого проекта до сих пор нет на CPAN (спустя 4 года как), я его делал для одной компании и код выкладывать не буду, а если и буду, то форкнутую версию (форк форка), дабы избежать конфликтов и допилить еще более высокого уровня (на что у меня пока времени нет). Проект носит чудное название AnyEvent::Telnet. Вперед форкать! Уверен поставят вам 100500 лайков на metacpan за него :)

Не знаю о чем вы тут и знать не хочу. Мне хватило от вас советов насчет «/o» и Memoize. Может кто-нибудь откроет вам глаза парой контрпримеров то что вы не понимаете как работает все это внутри, но не я. Мне с лихвой хватило здесь перепалок со всякими. Единственное с кем осталось желанеи общаться - это тов. bananym.

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

Поведайте нам уже хотя бы малую толику этих случаев.

Поддерживаю. Пример с «\n» слишком синтетичный. Я тоже писал и пишу код на продашн на perl и не вспоминаю проблем. Расскажите вам какие у вас возникали проблемы, возможно с unpack он решится элементарнейшим образом.

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

Ты ебанутый? Человек русским языком спросил: «libpcre - альтернативная реализация перловых регекспов или та самая, что в перле?»,- а ты начал неумно умничать, добавив в конце, что таки да, «libpcre - это не связанная с perl альтернативная реализация, она не полная и отличается местами». Обратись уже к врачу.

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

Ты ебанутый?

Я - нормальный, а ты - быдло.

Человек русским языком спросил: «libpcre - альтернативная реализация перловых регекспов или та самая, что в перле?»,- а ты начал неумно умничать, добавив в конце, что таки да, «libpcre - это не связанная с perl альтернативная реализация, она не полная и отличается местами».

человек спросил не так, разуй глаза

Обратись уже к врачу.

в школу иди

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

человек спросил не так, разуй глаза

Вообще-то именно это я и спрашивал. Поэтому ты неправ анон перед тем аноном.

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

Вообще-то именно это я и спрашивал.

А мне откуда знать? В вашем вопросе

В перле тоже libpcre, или это альтернативная реализация?

«это» можно отнести как libpcre, так и perl. Но раз нет однозначности, то я выбрал один из вариантов и ответил на него. Спроси вы так

В перле тоже libpcre, или libpcre - это альтернативная реализация?

то было бы однозначно понятно.

Поэтому ты неправ анон перед тем аноном.

Раз это не совсем так, то утверждение в целом ложно.

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

понимание того какого уровня решения является apache и знание того какие воможности дает modperl гораздо важнее

Ясно. Но тогда уж точно - перл мёртв! И посмотрите кто его юзает и что толкает в массы. Люди до сих пор обсуждают что прогрессивнее - перфокарты или перфолента :) Имеете право, вам в аквариум даже монетки кидать будут :)

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