Perl:将一个文件中的数字附加到第二个文件的字符串

Perl: append numbers from one file to strings of second file

我想将一个文件中附加到 (Unicode) 字符串的数字附加到第二个文件中的匹配字符串。不知何故,我无法全神贯注于如何做到这一点。这是我的两个文件的样子。

文件 1:

दौरा, 2
प्रोत्साहन, 1
प्रगति, 4

文件 2:

दौरा
dorA

प्रोत्साहन
prua2ts3Ahan
prua2ts2Ahan
prua2tsAhan
prua2t2s3Ahan
prua2t2s2Ahan
prua2t2sAhan
prOts3Ahan
prOts2Ahan
prOtsAhan
prOt2s3Ahan
prOt2s2Ahan
prOt2sAhan

प्रगति
praGat2I
praGatI
pragat2I
pragatI

期望的结果如下所示:

输出:

dorA, 2

prua2ts3Ahan, 1
prua2ts2Ahan, 1
prua2tsAhan, 1
prua2t2s3Ahan, 1
prua2t2s2Ahan, 1
prua2t2sAhan, 1
prOts3Ahan, 1
prOts2Ahan, 1
prOtsAhan, 1
prOt2s3Ahan, 1
prOt2s2Ahan, 1
prOt2sAhan, 1

praGat2I, 4
praGatI, 4
pragat2I, 4
pragatI, 4

我有一个从文件 1 创建的散列,它以字符串作为键,以数字作为值。现在需要匹配文件 2 中的这些键,在匹配后收集所有后续行,并将值附加到后续行。有人能指出我正确的方向吗?

您对解决方案的描述是正确的。现在只需将其翻译成代码:

#!/usr/bin/perl
use warnings;
use strict;

my %hash;

open my $F1, '<:encoding(UTF-8)', 'file.1' or die $!;
while (<$F1>) {
    chomp;
    my ($word, $num) = split /, /;
    $hash{$word} = $num;
}

open my $F2, '<:encoding(UTF-8)', 'file.2' or die $!;
my $word;
while (<$F2>) {
    chomp;
    if (exists $hash{$_}) {
        $word = $_;
    } elsif ($_) {
        print "$_, $hash{$word}\n";
    } else {
        print "\n";
    }
}