perl grep在条件语句中使用遇到的问题
2013-01-08 13:51
288 查看
我们在处理数据时,经常会遇到,在一个列表中过滤出不符合某一条件的内容,并组成新的列表。
比如 @array = ("a", "null", "c", "d");
这时候用grep实现如下:
但是如果放在条件语句中就会有问题。
最后过滤的结果始终都是failed。
对于这种判断,我们应该在grep 中使用 eq , == 来判断, 然后对结果取反。
比如 @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", "b", "c"); for my $tmp (@array_tmp) { if (! grep { $_ eq $tmp } @array ){ print "success"; } else { print "failed"; } }
相关文章推荐
- 使用mybatis遇到的关于条件查询">"以及if test传参的使用问题
- 使用union all 遇到的问题(俩条sql语句行数的和 不等于union all 后的 行数的和 !);遗留问题 怎么找到 相差的呐俩条数据 ?
- 微软EnterpriseLibrary中使用SQL LIKE语句遇到的问题
- 在ORM框架中使用原生sql语句进行聚合查询遇到的问题
- 关于Hibernate在使用原生SQL语句多表查询所遇到的问题
- 在使用EF开发时候,遇到 using 语句中使用的类型必须可隐式转换为“System.IDisposable“ 这个问题。
- 遇到问题-------perl无法使用多线程This Perl not built to support threads
- delphi中使用sql语句加条件引用时值是一个整型变量的问题
- Mysql的sql语句中使用判断语句遇到的问题
- 遇到问题-------perl无法使用多线程This Perl not built to support threads
- SQL语句中使用变量作为条件。遇到NULL时怎么写
- 时间类型数据使用between ...and ..语句条件查询时应注意的问题
- ibatis中写SQL语句时使用in遇到的问题描述
- 使用C#书写SQLite数据库增删改查语句(以及插入byte[]时遇到的问题总结)
- mybatis中使用if语句遇到的问题
- php使用odbc执行复杂函数遇到的问题,sql语句直接在sqlserver数据库中运行有结果,使用php总是为空
- 【求助】使用SQL语句优化工具遇到的问题
- 使用Hibernate 5.0、4.0、3.0 createSQLQuery执行原生Sql语句 遇到问题及解决办法集锦
- 【求助】使用SQL语句优化工具遇到的问题
- ios 使用cocoapods pod install 或者pod upadate遇到 abort trap:6问题