所以我正在处理一些我的编译器真的不喜欢的代码。有两个数组,它们具有相同数量的索引。@array
用0
's@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
.