perl数组大小应该小于它应该

Shu*_*wal 1 arrays perl

我想将@clump的4 ^ 9(= 262144)索引初始化为0.所以我写了这个:

my $k=9;
my @clump=();
my $n=4**$k;
for(my $i=0;$i<$n;$i++){
   push(@clump,0);
   print "$i ";
}
Run Code Online (Sandbox Code Playgroud)

但它一直冻结在261632!然后我尝试使用$ n = 5 ^ 9(= 1953125)并且我的代码在1952392停止.因此它绝对不是内存问题.这应该很简单,但我无法弄清楚我的代码有什么问题.帮一个新手?

mob*_*mob 9

遭受缓冲

当我sleep 1000在程序的末尾添加a ,将输出流式传输到文件,并读取文件的尾部时,我还观察到要打印的最后一个数字是261632和1952392.剩下的输出卡在输出缓冲区中,等待某个事件(缓冲区填满,文件句柄关闭,程序退出或显式刷新调用)来刷新输出.

缓冲可以在程序的早期通过以下语句之一进行更改

$|= 1;
STDOUT->autoflush(1);