我正在继续研究过时的生物信息学书籍,并尝试使用 XML::Smart Module。
我怀疑模块的方法在 6 年的时间里发生了变化,而且我对 perl 缺乏从cpan source进行故障排除的经验。注释掉的代码证明了 ncbi.gov 查询功能,我在使用“新”方法时遇到了问题——它没有解析 XML。我究竟做错了什么?谢谢!
更新具体来说,我在解析和显示 Id 数组时遇到了麻烦:my @Id = $results->{eSearchResult}{IdList}{Id}{'@'};
我在 OSX 终端上运行它,运行此脚本时看不到任何 Id。我看到了正确的伯爵。谢谢!
#!/usr/local/bin/perl
# use lib "/Users/fogonthedowns/myperllib";
# use LWP::Simple;
use XML::Smart;
use strict;
#Set base URL for all eutils
my $utils = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils";
my $db = "Pubmed";
my $query ="Cancer+Prostate";
my $retmax = 10;
my $esearch = "$utils/esearch.fcgi?" .
"db=$db&retmax=$retmax&term=";
# my $esearch_result = get($esearch.$query);
# print "ESEARCH RESULT: $esearch_result\n";
# print "Using Query: \n$esearch$query\n";
# print "hello world\n";
my $results = XML::Smart->new($esearch.$query,"XML::Parser");
my $count = $results->{eSearchResult}{Count};
my @Id = $results->{eSearchResult}{IdList}{Id}{'@'};
my $all_Id = join("\n", @Id);
print "Count = $count\n";
print "$all_Id\n";