-2
기본적으로 조회 파일에서 읽을 수있는이 스크립트는 perl에 있지만이 파일을 실행하면 작동하지 않지만 작은 입력 파일에서는 작동하지만 큰 파일에서는 작동하므로 다른 carachteres를 반환합니다.펄 스크립트의 메모리를 늘리시겠습니까?
동등한 단어가 있다면 Dog = can이라는 단어가 있고, 입력 파일에 dog라는 단어가 있으면 Can로 변환됩니다.
1GB 입력 파일을 실행하기 위해 메모리 용량을 늘리려면 어떻게해야합니까? 난 당신이 큰 파일을 넣을 수 있도록 프로그램에 사용 가능한 메모리를 증가되어 수행 할 작업을 이해하지만
#!/usr/bin/perl
use strict;
use warnings;
use autodie;
open my $LOOKUP , "<" , "equivalents.txt";
open my $LIST , "<" , "input-text.txt";
open my $OUTPUT , ">" , "output.txt";
my %h;
while (<$LOOKUP>) {
chomp;
my ($k, $v) = split /\s*=\s*/;
$h{$k} = $v;
}
while (<$LIST>) {
s/([a-zA-Z0-9]+)/$h{$1} || "[$1]"/eg;
print $OUTPUT $_;
}
대용량 파일을 실행할 때 "다른 문자를 반환합니다"라고 말하면됩니까? 당신이 기억이 부족하다는 것을 어떻게 알 수 있습니까? – ThisSuitIsBlackNot
작은 입력 파일을 실행할 때 작동하기 때문에 짐작할 수 있습니다. 아시아 언어와 같은 다른 문자 또는 동등한 파일에 지정된 문자. – alex
프로세스가 메모리가 부족한 경우 얻을 수있는 동작이 아닙니다. 해시의 내용이 입력 파일의 내용과 일치하지 않는 것을 어떻게 확인 했습니까? – ThisSuitIsBlackNot