XML::Twig

XML::Twig - Perl - Programmation

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
Reply

Marsh Posté le 21-09-2006 à 01:05:57   

Reply

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 :
  1. return  \%up_pdf;


Message édité par anapajari le 21-09-2006 à 09:41:01
Reply

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 ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed