我编写了一个 Perl 脚本,它有两个输入文件:
第一个文件在每一行都有短语,然后是括号之间的值。这里有一个例子:
hello all (0.5) hi all (0.63) good bye all (0.09)
第二个文件有一个规则列表。例如:
hello all -> salut (0.5) hello all -> salut à tous (0.5) hi all -> salut (0.63) good bye all -> au revoir (0.09) good bye -> au revoir (0.09)
hello all
脚本必须读取第二个文件,并为每一行提取箭头之前的短语(例如,第一行:
如果存在,则将整行写入hello all -> salut (0.5)
输出。所以在这个例子中,输出文件应该是:
hello all -> salut (0.5)
hello all -> salut à tous (0.5)
hi all -> > salut (0.63)
good bye all -> au revoir (0.09)
我的想法是将第一个文件的所有内容放入哈希表中。为此,我的脚本:
#!/usr/bin/perl
use warnings;
my $vocabFile = "file1.txt";
my %hashFR =();
open my $fh_infile, '<', $InFile or die "Can't open $InFile\n";
while ( my $Ligne = <$fh_infile> ) {
if ( $Ligne =~ /(/ ) {
my ($cle, $valeur) = split /(/, $Ligne;
say $cle;
$h{$cle} = $valeur;
}
}
我现在的问题是:如何提取箭头之前的词段并在哈希表中搜索它?
谢谢您的帮助