Mar*_*iya 3 regex perl if-statement
这段代码是一个if声明; 我想测试是否$rtgene包含trn.我测试了代码$rtgene= nad3:
if ($rtgene!~/trn/){
$end=$data[$i][0]+100;
}
else{
$end =$data[$i][1];
}
print $end;
Run Code Online (Sandbox Code Playgroud)
这是一个不起作用的替代表达式:
($rtgene!~/trn/)? $end=$data[$i][0]+100 : $end=$data[$i][1]; print $end;
Run Code Online (Sandbox Code Playgroud)
问题出现在第一个代码(正常的if else语句)中它起作用并给我预期的结果,但另一个(最后一行)它不起作用; 它总是执行else声明.
问题:这个问题的原因是什么?怎么解决?
由于您尝试$end根据条件分配两个值中的一个,为什么不编写条件表达式,如下所示:
$end = ($rtgene !~ /trn/) ? $data[$i][0]+100 : $data[$i][1];
print $end;
Run Code Online (Sandbox Code Playgroud)
这避免了由ysth准确诊断的优先级问题,并且更容易理解.
Perl可用于编写不可思议的代码; 但是,让所有代码都难以理解并不是一个好主意.将作业堆叠并打印在一行上趋于不可思议.
| 归档时间: |
|
| 查看次数: |
333 次 |
| 最近记录: |