昨天我问了这个问题并得到了许多有用的答复,希望今天也是如此.这是我修改过的脚本.
#! /usr/bin/perl use strict; use warnings; my $line; my @array; my $print; open (OUT,">","output.txt")or die "cant open: $!"; while ($line = <>){ chomp($line); push(@array,$line); if(@array == 250){ $print = print "[",join(",",@array),"]","\n"; print OUT $print; @array = [] } }
最初我简单地说我需要将数组的前250个元素打印到文本文件中,并且该数组是从标准输入构建的.我没有说明的是,构建数组的输入可能包含数千行.从此输入创建数组的原因是,我可以将数组的大小限制为250个实体,然后将数组作为格式化字符串打印.然后我需要刷新数组并恢复构建输入的第251行,并继续对输入的其余部分执行此过程.让我们说输入是5k行,我希望我的输出是一个包含原始5k输入行的文本文件,但是分成由250个数组实体组成的字符串.
目前,脚本只是将数组打印到屏幕上,“ouput.txt”里面是一行读取:1111111.
解决方法
$print = print "[","\n"; print OUT $print;
在这里,您将打印的返回值分配给$print,即1,因为打印成功.你想要做的是:
print OUT "[","\n";