1

我正在尝试将数组中的前 250 个条目打印到 .txt 文件中,但我遇到了一些麻烦。当我按原样运行脚本时,我的 output.txt 文件中什么也没有。

    #! /usr/bin/perl
use strict;
use warnings;

my $line;
my @array;
my $file = "moloch_chunker_output.txt";

open (OUT , ">","moloch_chunker_output.txt")or die "cant open: $!";
while ($line  = <>){
        chomp($line);
        push(@array, $line);
        if(@array == 250){
                print OUT @array;
}
}

我知道我在这里遗漏了很多东西,但是我在 if 语句之后尝试了其他几种方法。

if(array == 250){
         print "[", join(",",@array),"]","\n";

完全按照我想要的方式工作。我只想将它写入 .txt 文件,而不是简单地打印到屏幕上。如何将数组打印到 .txt 文件?

4

1 回答 1

1

与其将所有内容填充到一个数组中,然后在其大小达到 250 时打印数组内容,也许您可​​以简单地启动一个计数器并在您看到它时打印每一行(然后在达到 250 时退出)。有点像:

$cnt = 0;
while (<>) {
    chomp;
    print;
    last if ++$cnt >= 250;
}

或者...你可以从命令行运行head -250 moloch_chunker_output.txt(完全跳过 Perl)。

于 2013-11-04T19:39:45.870 回答