Thomas_1234: Assoziatives Array: Suchen nach Key<->Value und Value<->Key

Beitrag lesen

Gibt es für so etwas eine komfortable Lösung ohne zwei Hashes für beide Richtungen anzulegen?

Gibt es in Perl ein array_flip, das die Keys und Values vertauscht?
Wenn ja, sollte dir dass weiterhelfen.

Ah, das war ein Suchstichwort.
Mittels reverse kann man nicht zur Arrays tauschen, sondern bei Hashes auch die Zuordnung von key<->value drehen.

Allerdings musste ich das dafür jetzt in eine Funktion packen:

  
my $type = shift;  
my %dat = (  
 '00000'  => "A",  
 '00001'  => "F",  
 '00002'  => "R"  
);  
  
if ( exists($dat{ $TYPE })) {  
 $res = $dat{ $TYPE };  
 return $res;  
}  
else {  
 %dat = reverse(%dat);  
 $res = $dat{ $TYPE };  
 return $res;  
}  

Wie performant das Ganze ist, steht natürlich auf einem anderen Blatt. Aber so häufig wird das auch nicht aufgerufen.

Danke