そのため、コンパイラが本当に気に入らないコードを少し処理しています。同じ数のインデックスを持つ 2 つの配列があります。@array
に が入力され0
、@otherarray
順番に入力されます。この foreach ループでは、最初の値はループの外で埋められるため、スキップされます。Count は、ループの外でも 1 として宣言されます。
foreach (@array) {
if ($count == 1) {
} elsif($_ == 0 && @otherarray[$count-1] != undef) {
$_ = $count;
splice(@otherarray, @otherarray[$count - 1], 1);
} else {
$_ = $otherarray[ rand @otherarray ];
}
$count++
}
この行の数値 ne(!=) で初期化されていない値を使用していること、および他の配列が else/if/elsif ステートメント内にあるすべての行を使用していることを主張します。
elsif($_ == 0 && @otherarray[$count-1] != undef)
これを回避するにはどうすればよいですか? 当然のことだと思いますが、私は Perl を初めて使用するので、そもそも設定が間違っているのではないでしょうか? 私はすでに自分の@otherarray
.