http://qs321.pair.com?node_id=422463


in reply to boolean IN(); function in perl like

I'm surprised no one mentioned List::Util's "first" routine yet.

first {$_ eq $e} @a

I'm not sure this works properly if $e is undef, though.

Replies are listed 'Best First'.
Re^2: boolean IN(); function in perl like
by adamk (Chaplain) on Jan 17, 2005 at 03:50 UTC
    Or List::MoreUtil's even more correct 'any' function.
    if ( any { $_ eq $foo } @list ) { }
    If you are wondering why first isn't enough, imagine...
    if ( first { ! defined $_ } @list ) { # Does not get called if it matches } if ( any { ! defined $_ } @list ) { # Does get called it if matches }
    Of course, this assumes you only need to check once and once only. If you want to check many times, build the hash index and do it that way.

    Edit by castaway - swapped lotsa br tags for code tags

      Very right. ++ At a more basic level, this is why exists exists. Things may be there but have false values.

      Btw, please use <code> tags instead of <pre> tags when posting code. Cheers.