【发布时间】:2016-06-10 13:38:39
【问题描述】:
我有两个文件,一个是关键字文件,另一个是搜索文件
搜索.txtplay dream
dream play
dream
keyword.txt
play
dream
我想计算游戏和梦想的总出现次数,例如play= 2, dream =3
到目前为止我尝试过的代码是:
#!usr/bin/perl
use strict;
use warnings;
#Lexical variable for filehandle is preferred, and always error check opens.
open my $keywords, '<', 'keyword.txt' or die "Can't open keywords: $!";
open my $search_file, '<', 'search.txt' or die "Can't open search file: $!";
my $count=0;
my $keyword_or = join '|', map {chomp;qr/\Q$_\E/} <$keywords>;
my $regex = qr|\b($keyword_or)\b|;
while (<$search_file>)
{
while (/$regex/g)
{
$count++;
print "$.: $1\n";
print($count);
}
}
但它正在计算总出现次数,即 5
【问题讨论】:
-
使用逗号和句号。请。
-
没有,有两个文件,一个是关键字,例如dream和play,另一个是多行,包含dream和play。我们需要的是从第一个文件中获取关键字并找到总数。关键字在其他中的出现次数
-
所以 play=2 和 dream=3 这应该是预期的输出