Regex 使用perl处理名称和详细信息列表

Regex 使用perl处理名称和详细信息列表,regex,file,perl,Regex,File,Perl,有两个文件。一个文件是名称列表。另一个文件是名称和详细信息列表。我想创建第三个文件,其中包含第一个文件的名称和第二个文件的详细信息(该名称)。你能推荐一下吗 第二个文件中的详细信息由模式“列表[i](第一个文件中的名称)和“”分隔 #/usr/intel/bin/perl 使用警告; 严格使用; 使用数据::转储程序; 我的$handle; 除非(打开$handle,“您的输入文件之一是XML文档。您不应该使用正则表达式解析XML文档。最好使用适当的XML解析器(我建议) 如果坚持使用正则表达式

有两个文件。一个文件是名称列表。另一个文件是名称和详细信息列表。我想创建第三个文件,其中包含第一个文件的名称和第二个文件的详细信息(该名称)。你能推荐一下吗

第二个文件中的详细信息由模式“列表[i](第一个文件中的名称)和“”分隔

#/usr/intel/bin/perl
使用警告;
严格使用;
使用数据::转储程序;
我的$handle;

除非(打开$handle,“您的输入文件之一是XML文档。您不应该使用正则表达式解析XML文档。最好使用适当的XML解析器(我建议)

如果坚持使用正则表达式解析XML,那么就不能一次处理一行输入文件,因为XML元素通常会(通常?)跨越多行

另外,请更新您的文件处理代码,以使用三个arg版本的
open()
和词法文件句柄

open ( my $in_fh, '<', "...") or die("Could not open xml file.");

哦,在这些命令中使用
|
是一个标准化的好主意。

请更具体一些。包括文件示例和您尝试的代码,因此问题是
tet.xml
中的模式跨越多行,并且它们不一定与
中的键顺序相同>pss_ret_regs.txt
?所以您尝试多次通过
tet.xml
?对我来说,这似乎是一种效率很低的方法。
open ( my $in_fh, '<', "...") or die("Could not open xml file.");
open( my $out_fh, '>', $outffile) || die "ERROR: Can't open the output file $outffile: $!";