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