ich kann in Perl bei einem assiozativen Array ja nach dem wert eines keys suchen. Nun brauche ich aber ab und zu beide Richtungen.
Also z.B.:
my %dat = (
'00000' => "A",
'00001' => "F",
'00002' => "R"
);
>
> Ich brauche in meinem Programm einmal welcher Wert zu "00000" gehört, aber auch dass zu "A" eben "00000" gehört.
>
> Der Wert und sowohl der Key sind immer einmalig.
>
> Gibt es für so etwas eine komfortable Lösung ohne zwei Hashes für beide Richtungen anzulegen?
Das kommt sehr darauf an, was
00000 ... 00002 darstellen (numerisch sortiert?)
und ob A F R ganz einfach Daten der länge von 1 Zeichen sind.
Wäre dem sü so könntest du einerseits ganz einfach eine Stringvariable fragen
$pos = $DATA{'A'}
und
"A" eq substr( $DATA, $pos, 1 ) and print "OK";
Wenn dem nicht so ist, würde ich
einen Array aufbauen
my @RDATA = keys %DATA;
$RDATA[ $DATA{$\_} ] = $\_;
oder einen inversen Hash aufbauen
my %RDATA
foreach( keys %DATA ){
$RDATA{ $DATA{$\_} } = $\_;
}
Braucht aber Speicher.
mfg Beat;
--
Woran ich arbeite:
[X-Torah](http://www.elcappuccino.ch/cgi/tok.pl?extern=1-pub-com3306-1)
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o