Неплохо, да. Но если раньше глядя на код было явно видно с какими структурами идет работа, то теперь все чуть сложнее стало. Перлоненавистники порадуются :)
Я вас уверяю, на перле тоже можно писать читаемый код.
Другое дело что некоторые его последователи любят все пихать в одну строчку с тремя map'ами и парой grep'ов. Это апупеть как круто, но хвалиться этим можно только в среде таких же эээээ… гиков :)
А сейчас в чём неоднозначность?
Если рядов с этими ключевыми словами скаляр — это указатель на массив или хэш, а если списочный тип то это непосредственно массив или хэш. Никакой неоднозначности нет.
По сравнению со стааааарой версией v5.8.9 (build 825) на задаче обработки многоуровневых хэшей с массивами (процесс занимал почти полгига в памяти) получен примерно такой результат:
1. Потребление памяти меньше примерно на 10%.
2. Скачков потребления не было замечено, т.е. можно предположить что лучше используется освобождаемая память внутри процесса (надеюсь, то что perl ничего не отдает системе назад все знают?)
3. Быстрее почти на 20% (на 18,5 если быть точным)
Разница в том что по-новому не нужна переменная, можно, например, передать в функцию результат замены не модифицируя исходную строку и не используя дополнительных переменных, это удобно.
Выпущен Perl 5.14