Problème d'espace avec glob() [PERL] - Perl - Programmation
Marsh Posté le 11-06-2009 à 12:12:57
il faut utiliser la fonction bsd_glob de File::Glob au lieu de CORE::glob qui a ce comportement connu.
Un truc comme ça devrait le faire
Code :
|
(Noter qu'en sortie, tes fichiers sont au format unix, avec des séparateurs /. Pour avoir un format a la DOS, avec des séparateurs \, faire: my $SOURCE = 'C:\Documents and Settings\toto\Desktop\a\*';)
A+,
Marsh Posté le 11-06-2009 à 09:50:49
Bonjour,
J'utilise la fonction glob() pour lister le contenu d'un répertoire.
Mais si il y a un espace dans le chemin alors c'est "découpé".
Un exemple :
use strict;
use warnings;
my $SOURCE = "C:/Documents and Settings/toto/Desktop/a/*";
my @LISTFIC;
foreach (glob ($SOURCE)) {
print ": $_ \n";
if (-f) {push(@LISTFIC,$_);}
}
my $nbfic = scalar(@LISTFIC);
print("\n\n Nombre de fichiers : $nbfic \n" );
Résultat :
: C:/Documents
: and
Nombre de fichiers : 0
Le chemin "C:/Documents and Settings/toto/Desktop/a/*" est considéré comme 3 entrées différentes à cause des espaces.
Comment remédier à ça ?
Message édité par sephiburp le 11-06-2009 à 09:51:33