我有一个哈希的哈希值,最多总共 10000 次迭代,但它总是挂在 7219 次迭代计数上。这似乎不是因为内存,因为我多次注释/取消注释其余代码,并且它总是挂在某个数字上。如果哈希大小的哈希值很小且迭代次数小于 7k,则每次都可以正常工作。
for my $var1 (keys %hash_of_hash )
{
for my $var2 (keys %{ $hash_of_hash {$var1}{fields} })
{
print "\nDelete this comment of hash";
print "count- $counter Register- $var1 Field $var2";
$counter++;
#code -commented/uncommented
}
}
Run Code Online (Sandbox Code Playgroud)
我不认为它在循环中。我认为您成功地遍历了整个哈希,但是由于缓冲,您还没有收到整个输出。
添加$| = 1;以禁用默认句柄 (STDOUT) 上的缓冲。
或者,由于 STDERR 默认不缓冲,warn因此比print/更适合临时调试语句say。