Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re^4: What is happening ?

by vinoth.ree (Prior)
on Aug 19, 2009 at 06:12 UTC ( #789701=note: print w/ replies, xml ) Need Help??


in reply to Re^3: What is happening ?
in thread problem using foreach and each with hash ref

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


Comment on Re^4: What is happening ?
Re^5: What is happening ?
by grizzley (Chaplain) on Aug 19, 2009 at 08:11 UTC
      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
        Ok, I give up, I will disprove the other half of my thesis by myself :)
        %f=1..4; while(($k)=keys%f) { print qq!($k)=($f{$k})\n!; delete $f{$k} }
Re^5: What is happening ?
by ikegami (Pope) on Aug 19, 2009 at 14:38 UTC

    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}; ... }

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (5)
As of 2015-07-04 11:29 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 (59 votes), past polls