| List-Member documentation | Contained in the List-Member distribution. |
List::Member - PROLOG's member/2: return index of $x in @y.
use List::Member;
my $target = 'bar';
my @look_in = ('foo','baz','bar','etc');
warn "It is a member of the list" if member('bar',@look_in) +1;
warn "It is a member of the list" if member('bar',@look_in) >= 0;
warn "It is a member of the list" if member(qr/ar$/,@look_in) +1;
warn "It is not a member of list" if member('tikkumolam',@look_in) eq nota_member();
A tiny routine to achieve the same effect as PROLOG's member/2.
Returns the index of supplied scalar in supplied array, or returns the
value of the package's $NEG scalar. This can be over-ridden for the case
when the target is the same as the default -1:
$List::Member::NEG = 'not_a_member';
In the above case, the first two example calls in the POD would need to be updated.
member
In version 0.02, member returned undef but documented -1.
The documentation was correct, and the code has been updated.
Thanks to Benoit Thillaye du Boulay in France, John Day and Michael D Black in Florida for pointing out bugs in the documentation.
Lee Goddard <lgoddard@cpan.org>
Copyright (C) 2000-2007 Lee Goddard. All Rights Reserved.
This module is made available under the same terms as Perl.
perl(1).
| List-Member documentation | Contained in the List-Member distribution. |
package List::Member; require 5.005_62; use strict; use warnings; use Carp (); require Exporter; our @ISA = qw(Exporter); our @EXPORT = qw(&member ¬a_member); our $VERSION = '0.044'; our $NEG = -1; sub nota_member { return $NEG } sub member { my $target = shift; Carp::croak 'No target in member/2 ' unless defined $target; if (ref $target eq 'Regexp'){ for (0..$#_){ return $_ if $_[$_] =~ $target; } } else { for (0..$#_){ return $_ if $_[$_] eq $target; } } return $NEG; } 1; __END__