以下に示すように、コードを含むスカラーを「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!
   }
}
最初の質問は、なぜ最初の条件がループでスタックしたのか、2番目の質問はどうすれば修正できるのかということです。ヘルプ/アドバイス/ソリューションを本当にいただければ幸いです。:)