Perl: if ( element in list )

后端 未结 10 638
栀梦
栀梦 2021-01-30 06:05

I\'m looking for presence of an element in a list.

In Python there is an in keyword and I would do something like:

if element in list:
            


        
10条回答
  •  梦如初夏
    2021-01-30 06:45

    List::Util::first

    $foo = first { ($_ && $_ eq "value" } @list;    # first defined value in @list
    

    Or for hand-rolling types:

    my $is_in_list = 0;
    foreach my $elem (@list) {
        if ($elem && $elem eq $value_to_find) {
            $is_in_list = 1;
            last;
        }
    }
    if ($is_in_list) {
       ...
    

    A slightly different version MIGHT be somewhat faster on very long lists:

    my $is_in_list = 0;
    for (my $i = 0; i < scalar(@list); ++$i) {
        if ($list[i] && $list[i] eq $value_to_find) {
            $is_in_list = 1;
            last;
        }
    }
    if ($is_in_list) {
       ...
    

提交回复
热议问题