Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
724 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] problème de récursivité

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Perl] problème de récursivité

n°718746
burgergold
5$? va chez l'diable!
Posté le 07-05-2004 à 15:03:38  profilanswer
 

Voila j'ai le code suivant (c'est pas encore une version finale alors ya p-e 2-3 trucs pas très bo encore)
 

Code :
  1. sub ini {
  2.   my $file = new Bromont::File(shift);
  3.   if (! -e $file->name || ! -f $file->name) {
  4.     return;
  5.   }
  6.   return ini::parse_ini($file);
  7. }
  8. sub ini::parse_ini {
  9.   my $file = shift;
  10.   my $base_object_type = shift;
  11.   my @base_lines;
  12.   my @lines;
  13.   my @object;
  14.   my $object_type;
  15.   my $test = $base_object_type;
  16.   print "test1 " . $base_object_type . " " . \$base_object_type . "\n";
  17.   foreach ($file->lines) {
  18.     print "test2 " . $base_object_type . " " . \$base_object_type . "\n";
  19.     if (my $type = ini::is_new_object_line($_)) {
  20.       if (ini::is_base_object($object_type, $type)) {
  21.         if ($object_type) {
  22.           push(@object, ini::parse_ini((new Bromont::VFile(\@lines)), $object_type));
  23.         }
  24.       }
  25.       $object_type = $type;
  26.     }
  27.     else {
  28.       if ($base_object_type eq $object_type) {
  29.         push(@lines, $_);
  30.       }
  31.       else {
  32.         push(@base_lines, $_);
  33.       }
  34.     }
  35.   }
  36.   return create_object($base_object_type, \@base_lines, \@object);
  37. }


 
mon problème, c'est que mes 2 print sont différents, alors qu'ils devraient être identique. La référence de $base_object_type semble changer aussitot que j'entre dans mon foreach...
 


test1 port SCALAR(0x2010ef24)
test2  SCALAR(0x2010e9b4)


 
je comprends vraiment pas
 
 
merci

mood
Publicité
Posté le 07-05-2004 à 15:03:38  profilanswer
 

n°719001
pospos
Posté le 07-05-2004 à 17:10:29  profilanswer
 

je sais pas trop pourkoi ca deconne, mais je trouve bizarre ta notation de sub avec des ::
 
en gros il va considerer que la sub parse_ini fait partie d'un package ini...
c'est chelou, et c'est peut etre de la que vient ton etrange probleme (syntaxe etrange => probleme etrange? c'est le "do what I mean"!)

n°719059
burgergold
5$? va chez l'diable!
Posté le 07-05-2004 à 17:49:42  profilanswer
 

jpeux bien essayer, jai fait ca à quelques reprise et j'ai eu aucun probleme (mais sans récursivité par exemple)

n°750072
royou1
bordeaux dans le coeur
Posté le 03-06-2004 à 08:34:50  profilanswer
 

ben moi jsui nv donc deja bonjour a tous.
Voila mon probleme c ke mon maitre de stage ma demande de resoudre un probleme et de me servir de la recursivite.
Je ne sai pas ce ke c donc jai fait des recherches sur google et je n'ai pas trouver ce ke je chercher j'ai juste trouver des fonctions pour essayer de comprendre la chose main en vain.
voila le source a modifier:
#boucle de changement de 4 par 4
 $i = 0;
 $index = 0;
 $j = 0;
 while ($index < $vector_n)
 { $vector[$index] .= $seq[$j];
 }
 continue
 { $index = $index+1;
 
## essayer de transformer en f(i)
  $i = $i + 1;
  $j = int($i/$seq_n);
  if ($j == $seq_n) { $i = 0; $j = 0;}
 }
il faut que le j disparaise et kil ni ai plus que le i
j'ai essayer cela mais sa marche po :
 continue
 { $index = $index+1;
  $i = &calci_4($index , $seq_n , $i);  
 }
#################################################################################
#                    #
#              1.00    0206504  nico #
#                    #
# calci_4($index , $seq_n , $i)             #
#                    #
#it is a procedure in order to reduce the row of the code and this procedure  #
#is use in the boucle while to calculate the number of combinaison    #
#################################################################################
sub calci_4(i){
 my $index = 0;
 my $i = 0;
 if ($i<3)
 {  
  $i = int($index/$seq_n);
  calci_4( $i + 1);
  if ($i == $seq_n) { $i = 0; }  
 }
  return($i);
}
je sais je passe pour une quiche mai je sui en premiere anne de bts iris et je fais du c++ et la mon stage est en perl et je connais pas la recursiviter donc je galere.
merci d'avance de votre reponse ki meclairera je lespere

n°750684
royou1
bordeaux dans le coeur
Posté le 03-06-2004 à 14:09:01  profilanswer
 

svp jai besoin d'aide que quelqu'un prene le temp d'o moin menvoyer une reponse.

n°751643
burgergold
5$? va chez l'diable!
Posté le 03-06-2004 à 23:05:56  profilanswer
 

1: post dans ton propre topic
 
2: mets ton code dans les balises code du forum, c'est pas lisible sinon


---------------
http://www.boincstats.com/signature/user_664861.gif
n°753359
royou1
bordeaux dans le coeur
Posté le 05-06-2004 à 18:27:51  profilanswer
 

oki je vai le faire  
merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] problème de récursivité

 

Sujets relatifs
[Perl] Codé ses mails en 8-bit sans problème ?[PERL] Question tres conne : taille de nombres
Perl/tk[Perl] Trouver la plus grande et la plus petite valeur
[PERL] un equivalent en perl du awk ou cut en shell ??Problème avec les index
MySQL: problème avec une requête multitableprobleme de creation d un compte sous sql serveru via php
probleme pour creer des compte sql via phpProbléme media
Plus de sujets relatifs à : [Perl] problème de récursivité


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR