デバッグ文入れたときにのみ結果が違うってのは、
大抵の場合、配列破壊が起きてる。

サブルーチンの引数渡しをチェック、宣言文チェック等すべし。

ちなみにprint文周辺だけ見てもわからない場合が多いよ。



後は、晒すしかないね。