Question

Je continue à travailler à partir d'un jour

Je soupçonne que les méthodes du module ont changé au cours de 6 ans et je suis inexpérimenté avec perl pour dépanner source de CPAN . Le code commenté prouve les fonctions de requête ncbi.gov, je vais avoir du mal avec la méthode « nouvelle » - ce n'est pas l'analyse du XML. Qu'est-ce que je fais mal? Merci!

Mise à jour Plus précisément, je suis en cours d'exécution en difficulté avec l'analyse et l'affichage du tableau Id: my @Id = $results->{eSearchResult}{IdList}{Id}{'@'}; Je suis en cours d'exécution sur le terminal ce OSX et je ne vois pas Ids quand je lance ce script. Je vois le bon comte. Merci!

#!/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";
Était-ce utile?

La solution

La première chose que vous avez fait de mal est de commenter use strict, la seconde est d'utiliser -w au lieu de use warnings.

tourné stricte, perl fera rapport:

  

bareword "XML :: Parser" non autorisés alors que "les sous-marins stricte" en usage à tmp. Test.pl ligne 19

Cela nous permet de retracer où le problème se produit.

Les exemples "Perl", pas "perl" ou "PERL" )

Autres conseils

Changement:

my @Id = $results->{eSearchResult}{IdList}{Id}{'@'};

à:

my @Id = $results->{eSearchResult}{IdList}{Id}('@');

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top