Voici (encore) une prise de tête concernant la fonction glob, qui m'avait déjà donné du fil à retordre.
Au début, j'ignorais en effet qu'il fallait stocker le résultat d'une recherche avec glob() dans un tableau, puis parcourir celui-ci.
Voici un exemple trivial d'utilisation de glob() mais sans même effectuer de traitement.
Il s'agit juste de mettre en lumière que l'appel à glob() a un effet sur une variable qui n'a justement rien à voir : la variable @list.
Voici le résultat, qui me laisse pour le moins perplexe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 my(@list) = ("a", "b"); for(@list){ print "\nTEST #1 - [".$list[0].";".$list[1]."]"; while(glob("*.*")) {} print "\nTEST #2 - [".$list[0].";".$list[1]."]"; } print "\nTEST #3 - [".$list[0].";".$list[1]."]";
TEST #1 - [a;b]
TEST #2 - [;b]
TEST #1 - [;b]
TEST #2 - [;]
TEST #3 - [;]
La boucle contenant l'appel à glob() ne fait strictement rien (c'est fait exprès pour le test)
Alors la grande question, c'est pourquoi le contenu du tableau @list est-il modifié ?
Partager