我需要逐行读取200mb"空格"分隔文件并将其内容收集到一个数组中.
每次运行脚本时,Perl都会抛出"内存不足"异常,但我不明白为什么!
请问一些建议?
#!/usr/bin/perl -w
use strict;
use warnings;
open my $fh, "<", "../cnai_all.csd";
my @parse = ();
while (<$fh>) {
my @words = split(/\s/,$_);
push (@parse, \@words);
}
print scalar @parse;
Run Code Online (Sandbox Code Playgroud)
cnai文件看起来像这样:它包含11000行和4200个值,每行分隔"空格".
VALUE_GROUP_A VALUE_GROUP_B VALUE_GROUP_C
VALUE_GROUP_A VALUE_GROUP_B VALUE_GROUP_C
VALUE_GROUP_A VALUE_GROUP_B VALUE_GROUP_C
VALUE_GROUP_A VALUE_GROUP_B VALUE_GROUP_C
Run Code Online (Sandbox Code Playgroud)
上面的代码只是一个简化的样本.
最终脚本将所有值存储在哈希中,稍后将其写入数据库.
但首先,我必须解决那个记忆问题!