Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re^3: What is happening ?

by goeb (Pilgrim)
on Aug 19, 2009 at 06:06 UTC ( [id://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.

Replies are listed 'Best First'.
Re^4: What is happening ?
by vinoth.ree (Monsignor) 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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://789698]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (5)
As of 2024-04-19 13:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found