in reply to iterate/traverse Two Hashes at once
Do both hashes contain the same number of keys? If so, easy. If not, you'll have to define what is supposed to happen when you reach the end of one hash, still having a few keys to go in the other hash.
Assuming you've got the same number of keys in each:
while( my( $key1, $val1 ) = each( %hash1 ) ) { my( $key2, $val2 ) = each( %hash2 ); # do something with $key1, $key2, $val1, and $val2 }
Or perhaps both hashes use the same keys, in which case you could....
while( my( $key, $val1 ) = each( %hash1 ) ) { my( $val2 ) = $hash2{$key}; # Do something with $key, and $val1, $val2. }
If you require that the iterations occur in a particular order, you'll have to deal with sorting the keys first, and then iterate over your sorted list of keys instead of using each.
Dave
|
|---|