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

正则表达式 – Perl if语句混淆

发布时间:2020-12-14 05:38:32 所属栏目:百科 来源:网络整理
导读:这段代码是一个if语句;我想测试$rtgene是否包含trn. 我用$rtgene = nad3测试了代码: if ($rtgene!~/trn/){$end=$data[$i][0]+100;}else{$end =$data[$i][1];}print $end; 这是一个不起作用的替代表达式: ($rtgene!~/trn/)? $end=$data[$i][0]+100 : $end=$
这段代码是一个if语句;我想测试$rtgene是否包含trn.
我用$rtgene = nad3测试了代码:

if ($rtgene!~/trn/){
$end=$data[$i][0]+100;
}
else{
$end =$data[$i][1];
}
print $end;

这是一个不起作用的替代表达式:

($rtgene!~/trn/)? $end=$data[$i][0]+100 : $end=$data[$i][1]; print $end;

问题出现在第一个代码(正常的if else语句)中它起作用并给我预期的结果,但另一个(最后一行)它不起作用;它总是执行else语句.

问题:这个问题的原因是什么?怎么解决?

解决方法

由于您尝试根据条件将两个值中的一个赋值给$end,为什么不编写条件表达式,如下所示:

$end = ($rtgene !~ /trn/) ? $data[$i][0]+100 : $data[$i][1];
print $end;

这避免了ysth准确诊断的优先级问题,并且更容易理解.

Perl可用于编写不可思议的代码;但是,让所有代码都难以理解并不是一个好主意.将作业堆叠并打印在一行上趋于不可思议.

(编辑:李大同)

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

    推荐文章
      热点阅读