Я был очень удивлен, обнаружив, что функция keys
успешно работает с массивами:
keys HASH
keys ARRAY
keys EXPR
Возвращает список, состоящий из всех ключей именованного хэшаили индексы массива.(В скалярном контексте возвращает число ключей или индексов.)
Есть ли преимущество в использовании keys @array
вместо 0 .. $#array
в отношении использования памяти, скорости и т. Д., Илипричины для этой функциональности больше исторического происхождения?
Видя, что keys @array
поддерживает до $[
модификации, я предполагаю, что это исторически:
$ perl -Mstrict -wE 'local $[=4; my @array="a".."z"; say join ",", keys @array;'
Use of assignment to $[ is deprecated at -e line 1.
4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29