每个脚本在散列散列的大约 7200 次交互中挂起

him*_*mat 2 memory perl hash

我有一个哈希的哈希值,最多总共 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)

ike*_*ami 5

我不认为它在循环中。我认为您成功地遍历了整个哈希,但是由于缓冲,您还没有收到整个输出。

添加$| = 1;以禁用默认句柄 (STDOUT) 上的缓冲。

或者,由于 STDERR 默认不缓冲,warn因此比print/更适合临时调试语句say