Man hat zum Beispiel folgendes Array:
Angenommen dieses Array wurde dynamisch zur Laufzeit erzeugt, die Elemente liegen an unbekannten Indizes und man möchte nun auf einzelne Elemente direkt zugreifen.my @array = ("Apfel", "Birne", "Banane", "Tomate");
Anstatt über das ganze Array in einer Schleife zu iterieren, dann zu prüfen ob das Element mit dem gesuchten übereinstimmt und währenddessen einen Zähler inkrementieren um die Position zu erhalten, kann man auch folgendes machen:
Dieser kurze Codeschnipsel legt einen Hash an, mit den Array-Elementen als Key und den zugehörigen Indizes als Value.my %hash;
@hash{@array} = (0..$#array);
Data::Dumper würde folgendes ausgeben:
Um nun beispielsweise die Birne aus dem Array zu löschen reicht ein$VAR1 = {
'Banane' => 2,
'Apfel' => 0,
'Tomate' => 3,
'Birne' => 1
};
delete $array[$hash{"Birne"}];
(Notiz am Rande: delete setzt das Element am Birnen-Index nur auf undef. Mit splice würde das Element komplett entfernt werden, aber dann müßte man den Index-Hash neu erstellen, weil die verbleibenden Array-Elemente die Lücke füllen.)

