in reply to Bijective data association structure?
Then just use one hash, since you never use the same value as both a key and a value...
my %chordpos; @chordpos{1..12}= qw( A A# ... ); @chordpos{values %chordpos}= keys %chordpos; [download]