0
단어가 들어있는 문장의 수를 계산하고 싶습니다. 나는 2 개의 파일을 가지고 있는데, 하나는 문장을 포함하고 다른 하나는 단어를 포함하므로 각 단어에 대해이 단어를 포함하는 문장의 수를 세어 보겠다. 나는이 두 문장이있는 경우 예를 들어왜 foreach 루프를 종료하지 못하게합니까?
use strict;
use autodie;
use autodie;
open my $fh_resultat, ">:utf8", 'out';
use constant CORPUS_MOT => 'test';
use constant CORPUS_Phrases => 'phrases';
my @tab_MOT_CORPUS = do {
open my $fh1, "<:utf8", CORPUS_MOT;
map { split } <$fh1>;
};
my @tab_phrase_CORPUS = do {
open my $fh2, "<:utf8", CORPUS_Phrases;
map { split } <$fh2>;
};
foreach my $mot (@tab_MOT_CORPUS) {
my $nb_phrase = 0;
foreach my $ph (@tab_phrase_CORPUS) {
my @tab = split(/ /, $ph);
chomp @tab ;
#it should quit foreach if mot == val
foreach my $val(@tab) {
if ($mot eq $val) {
$nb_phrase = $nb_phrase + 1;
last;
}
}
}
print $fh_resultat "$mot:$nb_phrase\n";
}
print "$nbre_ligne\n";
가 :
이word1 is in sentence1 word1
word2 is in sentence2
는 결과가 있어야한다 :
이word1:1
word2:1
'@ tab'은 항상 하나의 요소 배열이고, 그 위에있는 'foreach/last'는 의미가 없습니다. –
'map {split}'을'map {split} <$fh2>;에서 제거하십시오. – jm666
'autodie;'를 두 번 사용하고'경고 사용 '이 없습니다. –