sub recupNomType{
my ($obj)=shift;
my ($fich)=shift;
my($nom,$i,$fin,$type)=undef;
$i=rindex($fich,'.';
if(($i)eq(-1)){
$fin=1;
$nom=$fich;
}else{
$nom=substr($fich,0,($i));
$type=substr($fich,($i+1),(length($fich)-($i+1)));
}
return $nom,$type;
}
my ($RepCourant) = cwd();
my ($RepTemp) = $volume.$dir;
my (@Fichiers)=[];
# récupération des fichiers contenus dans c:\Temp
chdir($RepTemp);
@_ = <*>;
# on vire tous les rép récupérés dans l'instruction précédente
foreach(@_) {
if (! -d $_) { # si pas un répertoire, on récupère
push(@Fichiers, $_);
}
}
# test si le fichier est "*.*" ==> copie de tous les fichiers #d'un repertoire
($nom,$typ)=$obj->recupNomType($fich);
my ($etNom)=(($nom)eq('*');
my ($etTyp)=(($typ)eq('*');
if((($etNom)ne(undef))and(($etTyp)ne(undef))){
foreach(@Fichiers){
if(index($_,'ARRAY('eq -1){# test si la valeur est l' "ARRAY" non désiré
$ret=copy($_,$repSave.$_);
if(($ret)ne(1)){
$noPb=0;
}
}
}
}
par ce code , je recupère la liste des fichiers et repertoires d'un dossier.Si une valeur est un fichier, je le copie dans un repertoire de sauvegarde.
le probleme est qu'au final, je retrouve la valeur
ARRAY(...qqchose...)comme 1er element du tableau @Fichiers.
ceci m'embete un peu car il a ppour concequence de signaler un probleme dans la copie ( noPB=0 realise ce signalement ).
j'aimerai bien savoir d'ou vient cet ARRAY car il n'aparait pas dans la liste des fichiers récupéré...
et comment detecter sa presence autrement que par le test que j'efectue ? ( (index($_,'ARRAY(' )