Я не забываю быстро принимать given .. when
, say
, //
, и умный оператор соответствия, когда Perl 5.10 пришел.
Что Вы считаете самые полезные меры и функции начатыми с Perl 5.12.0?
Это моя любимая функция на сегодняшний день:
use 5.012; # enables 'use strict' implicitly!
Мне нравится идея Yada Yada , хотя время покажет, действительно ли она полезна.
while (readdir $ dir) {}
теперь работает как while (readline $ file) {}
.
perl -MO=Deparse -e'while( readline $f ){}'
while (defined($_ = <$f>)) {
();
}
<$ f>
то же самое, что readline $ f
Так версии Perl до v5.11.2 обрабатывали while (readdir $ dir) {}
perl-5.10 -MO=Deparse -e'while( readdir $d ){}'
while (readdir $d) {
();
}
Стоит отметить, что вышеуказанное не будет работать правильно, если есть файл или каталог с именем 0
. Что не имеет большого значения, так как в любом случае ничего полезного не делает.
В Perl версии 5.11.2 был добавлен патч, который привел его в большее соответствие с обработкой while (readline $ file) {...}
.
perl-5.12.0 -MO=Deparse -e'while( readdir $d ){}'
while (defined($_ = readdir $d)) {
();
}
Я хотел бы отметить, что Я был тем, кто предоставил этот патч. Это было первое, что я когда-либо пытался исправить в ядре Perl. Так что это был первый написанный мной патч, который вошел в Perl.
Необработанные данные:
Полный список изменений
Интересно:
Замечательно:
Не уверен, что эта информация является новой, но perlperf - Perl Performance and Optimization Techniques был добавлен в документацию !!!
Полезно:
\ N
regex escape ...
(также известный как Yada Yada) оператор Есть некоторые тонкие, но нетривиальные улучшения, которые сделают переносимые (флэш-накопители) дистрибутивы Perl лучше (или вообще).
Perl теперь также поддерживает 64-разрядную версию в Windows с GCC, поэтому 64-разрядная версия Strawberry Perl должна выйти в ближайшее время.