Qual è il modo più elegante per trasformare un hash dentro e fuori?Whay è il modo più elegante per trasformare un hash dentro e fuori?
Con questo intendo sostituire chiavi con valori e viceversa (presupponendo che tutti i valori siano al 100% univoci).
E.g.
Inizia con
my %start = (1=>"a", 2=>"b", 3=>"c");
# ...
# PROFIT:
my %finish = ("c" => 3, "b" => 2, "a" => 1);
so che posso farlo nel modo forza bruta:
foreach my $key (keys %start) {
my $value = $start{$key};
$finish{ $value } = $key;
}
Ma questo non può essere il modo più Perly-elegante di farlo!
tuo il metodo della forza bruta non funziona correttamente. Dovresti eseguire il ciclo su 'keys% start'. – cjm
Che cosa significa "100% univoco"? Lavori nella pubblicità? Qualcosa può essere "unico al 95%"? Dici a tua moglie che lei è il tuo "amore unico al 95%"? –
@cjm - proprio come sei. Ho modificato per correggere il codice, e ho aggiunto un po 'di pulizia dichiarando che le variabili sono lessicali nel più piccolo ambito (in altre parole, ho aggiunto 'my' ovunque). Ike - sentiti libero di ripristinare le modifiche se non sei d'accordo. – DVK