Avec la ligne de commande "perl ff.pl ." exécutée dans c:/wrkff,
j'obtiens :
./ff.pl
Avec la ligne de commande "perl ff.pl c:/wrkff", également exécutée
dans c:/wrkff, j'obtiens :
c:/wrkff/ff.pl
c:/wrkff/test/test.txt
Lorsque le '.' est utilisé comme répertoire de base, le
sous-répertoire 'test' ne semble pas être parcouru ! Quelqu'un peut-il
m'éclairer sur cette particularité (bug ou pas ?) ?
Avec la ligne de commande "perl ff.pl ." exécutée dans c:/wrkff, j'obtiens : ./ff.pl
Avec la ligne de commande "perl ff.pl c:/wrkff", également exécutée dans c:/wrkff, j'obtiens : c:/wrkff/ff.pl c:/wrkff/test/test.txt
Lorsque le '.' est utilisé comme répertoire de base, le sous-répertoire 'test' ne semble pas être parcouru ! Quelqu'un peut-il m'éclairer sur cette particularité (bug ou pas ?) ?
Je pense que c'est une mauvaise interprétation de la chaine. (sûrement
dû aux slashs.A vérifier)
Essaie plutôt ça:
use File::Find;
find(&wanted, @ARGV);
sub wanted
{
print $File::Find::name, "n" if (-f $_);
}
Hubert Toullec wrote:
Je rencontre une "subtilité" dans l'utilisation de File::find
(j'utilise la version 5.8.0, build 806 du Perl d'ActiveState sous
Windows XP Pro)
Le script ci-dessous :
use File::Find;
find(&wanted, @ARGV);
sub wanted
{
if (-f $File::Find::name)
{
print $File::Find::name, "n";
}
}
appliqué à l'arborescence suivante :
Directory of C:wrkff*
30/12/2003 22:04 <DIR> .
30/12/2003 22:04 <DIR> ..
30/12/2003 22:00 <DIR> test
30/12/2003 22:04 338 ff.pl
338 bytes in 1 file and 3 dirs 4 096 bytes allocated
Avec la ligne de commande "perl ff.pl ." exécutée dans c:/wrkff,
j'obtiens :
./ff.pl
Avec la ligne de commande "perl ff.pl c:/wrkff", également exécutée
dans c:/wrkff, j'obtiens :
c:/wrkff/ff.pl
c:/wrkff/test/test.txt
Lorsque le '.' est utilisé comme répertoire de base, le
sous-répertoire 'test' ne semble pas être parcouru ! Quelqu'un peut-il
m'éclairer sur cette particularité (bug ou pas ?) ?
Avec la ligne de commande "perl ff.pl ." exécutée dans c:/wrkff, j'obtiens : ./ff.pl
Avec la ligne de commande "perl ff.pl c:/wrkff", également exécutée dans c:/wrkff, j'obtiens : c:/wrkff/ff.pl c:/wrkff/test/test.txt
Lorsque le '.' est utilisé comme répertoire de base, le sous-répertoire 'test' ne semble pas être parcouru ! Quelqu'un peut-il m'éclairer sur cette particularité (bug ou pas ?) ?