use Getopt::Long;
use Pod::Usage;
-use Bio::DB::SoapEUtilities;
+use Bio::DB::EUtilities;
use Encode qw(encode_utf8);
use Term::ANSIColor qw(:constants);
pod2usage(join("\n",@USAGE_ERRORS)) if @USAGE_ERRORS;
-my $fac = Bio::DB::SoapEUtilities->new();
-
-my $result = $fac->esearch(-email => 'don@donarmstrong.com',
- -db => 'pubmed',
- -term => join(' ',@ARGV),
- -retmax => 1000,
- )->run();
-my @ids = $result->ids;
+my $result =
+ Bio::DB::EUtilities->new(-email => 'don@donarmstrong.com',
+ -db => 'pubmed',
+ -term => join(' ',@ARGV),
+ -retmax => 1000,
+ -eutil => 'esearch',
+ );
+my @ids;
+eval {
+ # this warns for everything, so hide the warning.
+ local $SIG{__WARN__} = sub {};
+ @ids = $result->get_ids('pubmed')
+};
+if (not @ids) {
+ print "No results\n";
+ exit;
+}
if (@ids > 0 and ref($ids[0])) {
@ids = @{$ids[0]};
}
}
print scalar(@ids)." results:\n";
exit 0 unless @ids;
-my $raw_xml = $fac->efetch(-email => 'don@donarmstrong.com',
- -db => 'pubmed',
- -id => \@ids
- )->run(-raw_xml => 1);
+my $raw_xml = Bio::DB::EUtilities->new(-email => 'don@donarmstrong.com',
+ -db => 'pubmed',
+ -id => \@ids,
+ -eutil => 'efetch',
+ );
use XML::LibXML;
-my $xml = XML::LibXML->load_xml(string => $raw_xml);
+my $xml = XML::LibXML->load_xml(string => $raw_xml->get_Response->content);
print STDERR $xml->toString if $DEBUG;
for my $article ($xml->findnodes(q{//*[local-name()='MedlineCitation']})) {
print STDERR $article->toString if $DEBUG;