如何更改外卡,让我们说一个<x>
并将其更改为另一个文档中的第一行?
文件A:包含外卡将是这样的:
<x> text text text
text text text <x>
tex text <x> text
文件B:包含要替换的单词列表。
num-1
num-2
num-3
num-4
所以期望的输出是:
num-1 text text text
text text text num-2
tex text num-3 text
我真的没有尝试任何事情,因为我不知道如何开始。 但我猜,有必要从一个文件中读取,然后另一个文件,这很困难。
更新
米勒看看这个结果:输入与上面提供的相同。
text text text
text text text num-2
text xt num-3
答案 0 :(得分:2)
读入第二个文件以构建单词列表。然后迭代第一个文件,一次替换一个“外卡”。
use strict;
use warnings;
use autodie;
my $file1 = 'foo.txt';
my $file2 = 'bar.txt';
open my $fh, '<', $file2;
chomp(my @words = <$fh>);
close $fh;
open $fh, '<', $file1;
while (<$fh>) {
s/<x>/shift @words/eg;
print;
}