XML::Twig - Perl - Programmation
Marsh Posté le 21-09-2006 à 09:40:44
tu peux pas retourner une hash, mais sa référence oui.
Donc a la fin de ta fonction
Code :
|
Marsh Posté le 21-09-2006 à 10:38:28
Le problème c retourner avant quelle fonction ??? comme tu vois dans mon code g 1 fonction imbriquée dans la fonction mapping... jaimerais retourner la reference de la hash à la fonction mapping qui elle se chargera de retourner la référence de la hash a l'instruction qui l'appelle....
tu sais comment faire ?
Marsh Posté le 21-09-2006 à 01:05:57
Salut...
J'ai une fonction mapping() comme suit :
sub mapping() {
my $file = shift @ARGV or die "You must provide a file as first element";
use XML::Twig;
my $twig=XML::Twig->new(twig_roots=>{'residue'=> \&xml_entry});
$twig->parsefile($file) or die "cannot parse [$file]: $!";
sub xml_entry {
my ($t, $el) = @_;
my %up_pdb;
my @crossRefDb = $el->children('crossRefDb');
foreach (@crossRefDb) {
if($_->{'att'}->{'dbAccessionId'} eq "O00204" ) {
my $spr_num = $_->{'att'}->{'dbResNum'};
my $pdb_num = $_->parent()->{'att'}->{'dbResNum'};
$up_pdb{$spr_num} = $pdb_num;
}
}
}
}
my $hash_ref = &mapping();
Sans rentrer dans le detail, jaimerais retourner la hash "%up_pdb" a l'instruction qui appelle mapping() et qui se trouve dans le main et non pas xml_entry... comment dois-je faire ?
Message édité par radioh le 21-09-2006 à 01:06:46