Windows에서 Perl을 사용하여 big * .gz 파일을 구문 분석하려고합니다.Perl - Windows에서 거대한 * .gz 파일 구문 분석
my $cmd = "zcat $dir/$file|";
open FILE, $cmd or die "$cmd:$!";
while (<FILE>) {
.
.
.
}
을하고 그것을 잘 작동합니다 :
솔라리스에서 나는 건설 다음 사용할 수 있어요. Windows에서 IO::Zlib 모듈을 사용하고 있습니다. 예 :my $fh = IO::Zlib->new("$file", "rb");
while (my $line = $fh->getline()) {
.
.
}
그러나 메모리가 부족합니다. (나는 시스템에 4GB RAM을 가지고있다.) 큰 * .gz 파일을 구문 분석하는 다른 방법이 있습니까?
처리하기 전에 압축을 풀 수없는 이유는 무엇입니까? 디스크 공간이 부족합니까? –
루프 내부의 다른 작업을 수행합니까? 또한 파일에 외부 줄 끝이 있으면 perl이 파일을 slurp 처리 할 수 있습니다 (IO :: Zlib은'$ /'대신 명시 적 \ n을 사용합니다). – TLP