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

Re^2: how can i return the common keys from a hash

by ivancho (Hermit)
on Aug 05, 2006 at 01:19 UTC ( [id://565771]=note: print w/replies, xml ) Need Help??


in reply to Re: how can i return the common keys from a hash
in thread how can i return the common keys from a hash

I am somewhat puzzled by the following DWIM:

in scalar context, each returns the next key of the hash. Why doesn't, then, the assignment "my $m = each %$href" return false if the key is "0"? ie

> perl -wle 'my %a = ( 0 => 1, y => 2, z => 4); while (my $m = each %a +) { print $m }' y 0 z > perl -wle 'my @a = ( 0 => 1, y => 2, z => 4); while (my $m = pop @a) + { print $m }' 4 z 2 y 1 > perl -wle 'my @a = ( 0 => 1, y => 2, z => 4); while (my $m = shift @ +a) { print $m }' >

Replies are listed 'Best First'.
Re^3: how can i return the common keys from a hash
by imp (Priest) on Aug 05, 2006 at 01:42 UTC
    perl -MO=Deparse -wle 'my %a = ( 0 => 1, y => 2, z => 4); while (my $m + = each %a) { print $m }' BEGIN { $^W = 1; } BEGIN { $/ = "\n"; $\ = "\n"; } my(%a) = (0, 1, 'y', 2, 'z', 4); while (defined(my $m = each %a)) { print $m; }
    It checks for defined as the loop condition, not a true value.
      indeed, as that's what you want in 99% of the cases..
      I was mostly pointing out that it's neither logical, nor obvious from docs

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2024-04-23 23:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found