Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^3: What is happening ?

by goeb (Pilgrim)
on Aug 19, 2009 at 06:06 UTC ( #789698=note: print w/ replies, xml ) Need Help??


in reply to Re^2:problem using foreach and each with hash ref
in thread problem using foreach and each with hash ref

You most likely want to use something like this:

while (($key, $value) = each %$hash_ref) { # do something... }
An example like this is also mentioned in the documentation for each. tilly already explained the reason your loop ends after the first key and value.


Comment on Re^3: What is happening ?
Download Code
Replies are listed 'Best First'.
Re^4: What is happening ?
by vinoth.ree (Prior) on Aug 19, 2009 at 06:12 UTC

    Is it possible to get each pair of key and value in foreach with each function ?

      each is an iterator. Foreach loops works on list. You're asking if it's possible to cut a piece of wood with a screwdriver.

      A foreach loop (whether using the for or foreach keyword) calls the list building expression once, and iterates over the resulting list.

      A C-style for loop (whether using the for or foreach keyword) could, since it's really a while loop with bells and whistles.

      Since you can probably cut a piece of wood with a screwdriver if you tried hard enough,

      for my $pair ( sub { my @pairs; while (my ($k,$v) = each %h) { push @pairs, [$k,$v] } @pairs }->() ) { my ($k,$v) = @$pair; ... }
      But using the appropriate tool is better.
      while (my ($k,$v) = each %h) { ... }
      or
      for my $k (keys %h) { my $v = $h{$k}; ... }
        Actually :)
        #!/usr/bin/perl -- use strict; use warnings; my %f = 1 .. 4; for( ; my($k,$v) = each %f ; ){ print qq!($k)=($v)\n!; } __END__ (1)=(2) (3)=(4)
        But B::Deparse reveals
        use warnings; use strict 'refs'; my(%f) = 1..4; while (my($k, $v) = each %f) { do { print "($k)=($v)\n" }; } __DATA__
        So I'm not sure :D

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://789698]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (15)
As of 2015-07-31 20:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (281 votes), past polls