Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Matching array elements not in another array

by eff_i_g (Curate)
on Mar 18, 2009 at 16:16 UTC ( [id://751501]=note: print w/replies, xml ) Need Help??


in reply to Matching array elements not in another array

use strict; use warnings; use List::Compare; my @available_things = qw/ant bat cat dog /; my @requested_things = qw/bat rat/; my $lc = List::Compare->new(\@available_things, \@requested_things); print $lc->get_complement(), "\n";

Replies are listed 'Best First'.
Re^2: Matching array elements not in another array
by locked_user sundialsvc4 (Abbot) on Mar 18, 2009 at 16:44 UTC

    “I'll second this motion.” Here's why...

    It is a very instinctive thing, for a programmer, to look at a problem and to immediately consider how he would solve it. (And even, to consider it and then struggle with it for a little while and then post the question to PerlMonks.)

    It is not so instinctive to stop and ask oneself: “hasn't this already been done by someone else?”

    And so you overlook things like List::Compare, and List::AllUtils, simply because it never occurred to you to look for them.

    Mind you, I do it too! We all do. Schools teach you that “everything you do must be your own work,” and they stick you in semester-long classes where you monkey-around with manual manipulation of data structures, in various inexcusable languages. Before that, generations of programmers worked in an environment where “an instantaneous and vast online code resource” did not exist ... the closest thing we ever had were SHARE tapes.

    When you leverage existing code like this, it's not only quite-a-bit more descriptive of what your code is actually doing, but it pushes the “how” aspect out-of-sight out-of-mind. Your code simply posits that an existing block of tested code to do this thing already exists, and uses that code to do it. While it could be debated, endlessly of course, whether such a herculean travesty is or is not “efficient” for the computer, it sure is efficient for you.

      This a good point and I shall look at the modules you suggested. However, performing fairly simple operations with lists is something I expect Perl to be good at, so I expected there to be some simple solution which does not require extra modules. As jethro shows, there is one.

      loris

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (1)
As of 2026-03-08 17:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.