Комментарии 23
Флаг /r действительно порадовал, давно пора уже было.
+4
В убунте по прежнему 5.10! %(
0
Основным тут кажется работа push/keys/values/each etc со ссылками, что убирает @{}, %{} мусор.
+1
Неплохо, да. Но если раньше глядя на код было явно видно с какими структурами идет работа, то теперь все чуть сложнее стало. Перлоненавистники порадуются :)
+2
в этом весь perl
+1
Это было включено в экспериментальном режиме, так что не факт, что останется навсегда.
0
А сейчас в чём неоднозначность?
Если рядов с этими ключевыми словами скаляр — это указатель на массив или хэш, а если списочный тип то это непосредственно массив или хэш. Никакой неоднозначности нет.
Если рядов с этими ключевыми словами скаляр — это указатель на массив или хэш, а если списочный тип то это непосредственно массив или хэш. Никакой неоднозначности нет.
0
ура =)
+1
Надо протестировать потребление памяти, интересно.
+1
По сравнению со стааааарой версией v5.8.9 (build 825) на задаче обработки многоуровневых хэшей с массивами (процесс занимал почти полгига в памяти) получен примерно такой результат:
1. Потребление памяти меньше примерно на 10%.
2. Скачков потребления не было замечено, т.е. можно предположить что лучше используется освобождаемая память внутри процесса (надеюсь, то что perl ничего не отдает системе назад все знают?)
3. Быстрее почти на 20% (на 18,5 если быть точным)
Вот как-то так.
1. Потребление памяти меньше примерно на 10%.
2. Скачков потребления не было замечено, т.е. можно предположить что лучше используется освобождаемая память внутри процесса (надеюсь, то что perl ничего не отдает системе назад все знают?)
3. Быстрее почти на 20% (на 18,5 если быть точным)
Вот как-то так.
0
sudo zypper up -r Tumbleweed perl
0
Не совсем понятно для чего был введен модификатор . Чем не устраивало то, как было раньше:
По новому: $new = old =~ s/cat/dog/r;
По старому: ($new = $old) =~ s/cat/dog/;
По новому: $new = old =~ s/cat/dog/r;
По старому: ($new = $old) =~ s/cat/dog/;
0
По-старому некрасиво (IMHO). Ну и без TIMTOWTDI никуда. :-)
0
Разница в том что по-новому не нужна переменная, можно, например, передать в функцию результат замены не модифицируя исходную строку и не используя дополнительных переменных, это удобно.
+4
say s/.../.../r
some_func( s/.../../r )
some_func( s/.../../r )
+5
два симвова вместо одного
-1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Выпущен Perl 5.14