in reply to Re^5: Using 'each' to get random (key, value) pair from hash returns "uninitialized value"
in thread Using 'each' to get random (key, value) pair from hash returns "uninitialized value"

An excellent piece of detective work :-)

So just grabbing the key alone and pulling the value manually will work.

knoppix@Microknoppix:~$ perl -Mstrict -wE ' my %hash = ( one => q{ein}, two => q{zwei}, six => q{sechs}, ); say qq{@{ [ %hash ] }}; for ( 1 .. 9 ) { my $k = each %hash || each %hash; say qq{$_: $k => $hash{ $k }}; }' six sechs one ein two zwei 1: six => sechs 2: one => ein 3: two => zwei 4: six => sechs 5: one => ein 6: two => zwei 7: six => sechs 8: one => ein 9: two => zwei knoppix@Microknoppix:~$

Thanks for clearing up the mystery.

Update: Apologies to duelafn, I didn't see his post before making this essentially identical reply.

Cheers,

JohnGG

  • Comment on Re^6: Using 'each' to get random (key, value) pair from hash returns "uninitialized value"
  • Download Code

Replies are listed 'Best First'.
Re^7: Using 'each' to get random (key, value) pair from hash returns "uninitialized value"
by puterboy (Scribe) on Jan 29, 2011 at 23:11 UTC
    Perfect - in a way this works even better for me since I don't really need the value - just the key anyway.
    And yes thanks to all for the incredible follow through and detective work.