xml ファイルを解析する必要があり、perl monks の Web サイトでこのコードを見つけました。コードを理解できず、配列要素のハッシュにアクセスする必要があります。
use Data::Dumper;
use XML::Rules;
my $parser = XML::Rules->new(
stripspaces => 7,
rules => {
substrate => sub { 'substrate' => $_[1]->{id}},
product => sub { '@products' => $_[1]->{id}},
reaction => sub {
my %reactions;
foreach (split / /, $_[1]->{name}) {
$reactions{$_} = { substrate => $_[1]->{substrate}, products => $_[1]->{products}};
}
return '%reactions' => \%reactions;
},
graphics => '',
entry => sub {
my @reactions = split ' ', (delete $_[1]->{reaction});
$_[1]->{reactions} = \@reactions if @reactions;
return '%entries' => {$_[1]->{id} => $_[1]}
},
pathway => 'pass'
});
print Dumper ($parser->parsefile('ko00010.xml'));