ディレクトリ内の各 xml ファイルの文字列「kcat」を含むすべての HTML テーブルを印刷しようとしていますが、問題が発生しています。ディレクトリ内の各ファイル (kcat_tables という名前) には、kcat を含む HTML テーブルが少なくとも 1 つあることに注意してください。このプログラムを 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言語にかなり慣れていないので、シンプルでわかりやすい回答をいただければ幸いです。