Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re: check if an element exists in array

by RecursionBane (Acolyte)
on Apr 12, 2011 at 01:43 UTC ( #898818=note: print w/ replies, xml ) Need Help??

in reply to check if an element exists in array

For those getting here through the Google terms "element exists in array perl", here's a simple routine I wrote because I wanted something similar to TCL's "lsearch -exact" but with a binary return:

# Checks if a provided element exists in the provided list # Usage: isInList <needle element> <haystack list> # Returns: 0/1 sub isInList { my $needle = shift; my @haystack = @_; foreach $hay (@haystack) { if ( $needle eq $hay ) { return 1; } } return 0; }
Of course, this should only be used on small haystacks (a few hundred elements at most).

Comment on Re: check if an element exists in array
Download Code
Re^2: check if an element exists in array
by jdporter (Canon) on Apr 12, 2011 at 16:49 UTC
    sub isInList { my( $d, $it ) = ( "\0", @_ ); join( $d, '', @_, '' ) =~ /$d\Q$it\E$d/ }

    Caveat: This treats all the values as strings. Input values which are not strings will get stringified! This may or may not yield the desired results.

      Elegant! Does Perl automagically return the last modified variable when returning from a subroutine?

        "Last modified variable"? No, it returns the value of the last evaluated expression.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (5)
As of 2014-07-26 09:24 GMT
Find Nodes?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:

    Results (175 votes), past polls