小编Flo*_*Doo的帖子

为什么我的Perl脚本死于"内存不足"异常?

我需要逐行读取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)

上面的代码只是一个简化的样本.
最终脚本将所有值存储在哈希中,稍后将其写入数据库.

但首先,我必须解决那个记忆问题!

database memory perl

1
推荐指数
2
解决办法
2万
查看次数

标签 统计

database ×1

memory ×1

perl ×1