in reply to help querying a hash

The comment 'Hashes are unsorted' is something to be aware of. The only way to sort a hash is via the sort perlfunc. However, I don't believe this is what you are looking for. I think you may be looking for a method of finding out what the count of all apples, oranges and lemons while the output will represent the order of which they were placed into the hash. To accomidate this, my example is to create an array reference of hash references that will allow for both. It may not be exactly what you are looking for, but it sounds very close. Therefore:
#!/usr/bin/perl use strict; use warnings; # For example... my $fruits = []; my $apple = { 'apple' => 1 }; my $orange = { 'orange' => 1 }; my $lemon = { 'lemon' => 1 }; # First, something needs to populate the ref. # This is just an example, so you will naturally # have to modify this to fit your app better $fruits = [ $apple, $orange, $lemon, $orange ]; for my $fruit ( @$fruits ) { print "$_\n" for keys %$fruit; } exit( 0 );
Albeit simplistic for what you are looking for, this may be closer to finding out what value of what is being placed into your 'hash'. Given that arrays are ordered, the array-ref wrapper is perhaps more appropriate to what you are looking for.

I hope this helps in your journey!

Good luck!

---hA||ta----
print$_ for(map{chr($_)}split(/\s+/,join(/\B?:\w+[^\s+]/,<DATA>))); __DATA__ 67 111 100 101 32 80 101 114 108