加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl grep在条件语句中使用遇到的问题

发布时间:2020-12-15 20:58:06 所属栏目:大数据 来源:网络整理
导读:我们在处理数据时,经常会遇到,在一个列表中过滤出不符合某一条件的内容,并组成新的列表。 比如 @array = ("a","null","c","d"); 这时候用grep实现如下: my @newArray = grep { $_ ne "null"} @array; 但是如果放在条件语句中就会有问题。 @array_tmp = (

我们在处理数据时,经常会遇到,在一个列表中过滤出不符合某一条件的内容,并组成新的列表。

比如 @array = ("a","null","c","d");

这时候用grep实现如下:

my @newArray = grep { $_ ne "null"} @array;

但是如果放在条件语句中就会有问题。

@array_tmp = ( "a","b","c");
for my $tmp (@array_tmp)
{
  if ( grep { $_ ne $tmp } @array ){
    print "success";
  }  else  {
    print "failed";
  }
}

最后过滤的结果始终都是failed。

对于这种判断,我们应该在grep 中使用 eq , == 来判断, 然后对结果取反。

@array_tmp = ( "a","c");
for my $tmp (@array_tmp)
{
  if (! grep { $_ eq $tmp } @array ){
    print "success";
  }  else  {
    print "failed";
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读