我有一个硬编码的if循环,如下所示:
my $tp = 0;
my $fp = 0;
if ( $myhash{$pred}
|| $myhash{$pred1}
|| $myhash{$pred2}
|| $myhash{$pred3}
|| $myhash{$pred4}
|| $myhash{$pred5}
|| $myhash{$pred6} )
{
$tp++;
}
else {
$fp++;
}
如何在for循环中做到这一点?
我尝试了以下操作,但总的
fp
和tp
给出了不同的结果:my $tp=0;
my $fp=0;
my @allpreds = ($pred,$pred1,$pred2,$pred3,$pred4,$pred5);
foreach my $allpred ( @allpreds ) {
if ( $myhash{$allpred} ) {
$tp++;
}
}
if ( !myhash{$pred} ) {
$fp++;
}
最佳答案
my $tp=0;
my $fp=0;
my $count=0;
my @allpreds = ($pred,$pred1,$pred2,$pred3,$pred4,$pred5);
foreach my $allpred ( @allpreds ) {
if ( $myhash{$allpred} ) {
$count++;
}
}
if ($count>0) { $tp=1; } else { $fp=1; }
关于linux - 如何重写此多重或条件,以便它使用Perl “for”循环?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5643458/