Ich war ziemlich überrascht, als ich feststellte, dass die keys
Funktion arbeitet gerne mit Arrays:
keys HASH keys ARRAY keys EXPR
Gibt eine Liste zurück, die aus allen Schlüsseln des benannten Hashes besteht, oder die Indizes eines Arrays. (Im skalaren Kontext wird die Anzahl der Schlüssel oder Indizes zurück.)
Gibt es einen Vorteil bei der Verwendung von keys @array
anstelle von 0 .. $#array
im Hinblick auf Speicherverbrauch, Geschwindigkeit usw., oder sind die Gründe für diese Funktionalität eher historischer Natur?
Wenn man sieht, dass keys @array
hält bis zu $[
Änderung, ich vermute, es ist historisch:
$ 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