in reply to Bi-Directional Hash Lookup

The only thing I can think of that is per se inefficient about multiple hashes is the need to have multiple references being passed around. The way I usually avoid this is simply a HoH:
$hash{ column_name1 }{ value1 } = value2; $hash{ column_name2 }{ value2 } = value1;
Update: Although, a more complex scenario might even require something like this to maintain a one-hash-for-all structure:
$hash{ DATA }{ table1 }{ column_name1 }{ value1 } = value2; $hash{ DATA }{ table1 }{ column_name2 }{ value2 } = value1;

-M

Free your mind