私は時代遅れのバイオインフォマティクスの本を読み続けており、XML::Smart モジュールを使用しようとしています。
モジュールのメソッドが 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";