我正在用Perl寫一個程序。我在一個循環中調用一個sub。在調用子程序之後,程序停止循環遍歷@list中的其餘值。有任何想法嗎?Perl之後的Perl循環問題?
for($i = 0; $i <@list; i++){
if($value{attrs[$i]} ne $otherValue{otherAttrs[$i]}){
$convert = valueConvert(otherValue{otherAttrs[$i]};
$value{attrs[$i]} = $convert;
}
}
這是次
sub valueConvert{
($mValue) = @_;
....
return $mValue
}
的值正確地轉換在子並返回到主循環,並正確分配。所以我不知道什麼是錯的
在EVERY中包含['use strict;'](http://perldoc.perl.org/strict.html)和['use warnings'](http://perldoc.perl.org/warnings.html) perl腳本。這很可能是你問題的根源,但是你不能提供足夠的信息來確定診斷。 – Miller 2014-10-30 16:58:07
您還應該添加一些打印語句來調試問題。打印@list的大小,然後每次循環嘗試打印'$ i'。這將告訴你,如果它正在通過每一次迭代。我的猜測是它經歷了每一次迭代,但是你的'if()'語句每次都沒有返回「true」,所以它似乎在跳過一些東西。 – tjwrona1992 2014-10-30 17:02:42