我正在尝试为目录中的每个 xml 文件打印包含字符串“kcat”的所有 HTML 表,但我遇到了一些麻烦。请注意,目录中的每个文件(名为 kcat_tables)至少有一个包含 kcat 的 HTML 表。我在 ubuntu 虚拟机上运行这个程序。这是我的代码:
#!/usr/bin/perl
use warnings;
use strict;
use File::Slurp;
use Path::Iterator::Rule;
use HTML::TableExtract;
use utf8::all;
my @papers_dir_path = qw(/home/bob/kinase/kcat_tables);
my $rule = Path::Iterator::Rule->new;
$rule->name("*.nxml");
$rule->skip_dirs(".");
my $xml;
my $it = $rule->iter(@papers_dir_path);
while ( my $file = $it->() ) {
$xml = read_file($file);
my $te = HTML::TableExtract->new();
$te->parse($xml);
foreach my $ts ( $te->tables ) {
if ( $ts =~ /kcat/i ) {
print "Table (", join( ',', $ts->coords ), "):\n";
foreach my $row ( $ts->rows ) {
print join( ',', @$row ), "\n";
}
}
}
}
关于我应该如何解决这个问题的任何想法?提前致谢!另外,我对 PERL 语言还很陌生,所以非常感谢一个简单易懂的答案。