Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Re: (stephen) Hash Tutorial

by !unlike (Beadle)
on Apr 28, 2003 at 11:52 UTC ( [id://253657]=note: print w/replies, xml ) Need Help??


in reply to Re: (stephen) Hash Tutorial
in thread Hash Tutorial

stephen,
I came across this thread, and you post, when looking for some help in doing a diff on the keys between two hashes.

Although code didn't answer my question directly it did give me the insiration to come up with the following:

perl -le '%foo = (1,1, 2,2, 3,3); %bar = (2,2, 3,3); print map { $_ if + !$bar{$_} } keys %foo;'

If you run this code you'll see that only "1" get printed.

Not the most robust piece of code ever, but I came up with it off my own back and it does a job for me. So cheers for the insiration!

!unlike

I write my Perl code like how I like my sex: fast and dirty. ;)

Replies are listed 'Best First'.
Re: Re: Re: (stephen) Hash Tutorial
by broquaint (Abbot) on Apr 28, 2003 at 12:21 UTC
    What you want in your snippet there is a grep() not map() as you're filtering out items not applying transforms to them e.g
    shell> perl -le '%a = qw/1 1 2 2 3 3/; %b = qw/2 2 3 3/; \ print grep !$b{$_}, keys %a' 1
    Also note that the map() in your snippet is returning a list of three items - a 1 and two empty strings.
    HTH

    _________
    broquaint

      Thanks broquaint
      I realised this just now and was about to post an update. But you beat me to it. :)

      !unlike

      I write my Perl code like how I like my sex: fast and dirty. ;)

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (3)
As of 2024-03-29 14:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found