bonjour, je suis en train de me battre avec un script perl pour parcourir mon arborescence et faire un traitement sur les images en feuille ( je vous passe le traitement).
Donc voila, premiere branche de l'arborescence c'est ok, mais apres il ne remonte pas et s'arrete au bout de la premiere branche!!!, Je vois pas trop le soucis, est ce que perl est particulier a gerer au niveau recursivite, ou ai-je fais une grosse boulette.
je transmet le script (assez court)
j'ajoute ma trace d'execution si ca peut aider...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 #!/usr/bin/perl sub parcours { #recup du chemain absolu $rep_courant=$_[0]; print $rep_courant."\n"; #ouverture du repertoire, et listage opendir(DIR,$rep_courant) || die "erreur de ouf"; @liste = readdir(DIR); $nbelem=scalar(@liste); $i=0; $trouve=0; #tant qu'on a pas tout parcouru ou qu'on a pas trouve une image while(($i<$nbelem)and($trouve == 0)){ $rep="/".$liste[$i]; #on creer le nouveau chemin absolu $rep_en_traitement=$rep_courant.$rep; #print "\$rep_courant = $rep_courant\n"; #print "\$rep = $rep\n"; #print "\$rep_en_traitement = $rep_en_traitement\n"; #si rep "." ou ".." on fait rien if(($rep =~ /.*\.$/)){ print "test2 ** $rep_en_traitement **\n"; }else{ #sinon #si c'est une image alors je traite toute les images du repertoire print" test3\n"; if($rep =~ /.*jpg$/){ $trouve=1; print "IIIAAAHHH je m'occupe des fichiers images du repertoire $rep_courant\n"; } #si c'est un repertoire je descend d'un cran et je recommence if(-d $rep_en_traitement){ &parcours($rep_en_traitement); } } $i++; print "\$i =$i et \$trouve = $trouve\n"; } } #je commence a l'endroit du script $working_dir=`pwd`; chop($working_dir); &parcours($working_dir);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 [ecreach@ird-us025-ddag qlook]$ ./script2.pl /mnt/data/qlook /. est . test2 ** /mnt/data/qlook/. ** $i =1 et $trouve = 0 test3 $i =2 et $trouve = 0 test3 $i =3 et $trouve = 0 test3 /mnt/data/qlook/QLOBSSAT /. est . test2 ** /mnt/data/qlook/QLOBSSAT/. ** $i =1 et $trouve = 0 test3 /mnt/data/qlook/QLOBSSAT/SSTTMI1D /. est . test2 ** /mnt/data/qlook/QLOBSSAT/SSTTMI1D/. ** $i =1 et $trouve = 0 test3 /mnt/data/qlook/QLOBSSAT/SSTTMI1D/2005 /. est . test2 ** /mnt/data/qlook/QLOBSSAT/SSTTMI1D/2005/. ** $i =1 et $trouve = 0 test3 /mnt/data/qlook/QLOBSSAT/SSTTMI1D/2005/ATT test3 IIIAAAHHH je m'occupe des fichiers images du repertoire /mnt/data/qlook/QLOBSSAT/SSTTMI1D/2005/ATT $i =1 et $trouve = 1 $i =2 et $trouve = 1 $i =3 et $trouve = 1 $i =4 et $trouve = 1 $i =5 et $trouve = 1
Si quelqu'un qui s'y connais un tit peu perl pouvait m'aider ce serait super sympa.
Merci
Partager