循环数组形成的多个if语句

时间:2012-08-15 22:07:54

标签: arrays perl loops if-statement conditional-statements

正如您将在下面看到的那样,'eval'是一个包含代码的标量的错误perl实践。除此之外,在下面的代码中,条件'$ condition {'b'} {'1'}'没有通过循环运行。只有数组中出现的条件才会运行,即。条件'$ condition {'a'} {'1'}',已运行。

my @parameter=('a','b');

my %condition;
$condition{'a'}{'1'}='$degree>=5';
$condition{'b'}{'1'}='$number>5';

foreach (@parameter) {
   my $count=0;

   foreach (<INPUT>) {
   my $degree=....;  #$degree defined
   my $number=.....; #$number defined
   if (eval $condition{$_}{'1'}) {$count++}  #only $condition{'a'}{'1'} was run!
   }

}

第一个问题是为什么第一个条件卡在循环中,第二个问题是我如何解决它?非常感谢任何帮助/建议/解决方案。 :)

1 个答案:

答案 0 :(得分:1)

foreach (@parameter)循环运行'a'的正文。在该循环中,foreach (<INPUT>)循环将输入消耗到其末尾。

然后foreach (@parameter)循环运行'b'的正文。在该循环中,foreach (<INPUT>)循环没有输入,因为它已被使用。