recuperation d'un "ARRAY" dans un tableau.. - Perl - Programmation
Marsh Posté le 14-08-2002 à 15:07:39
Rhaa j'ai trouvé
Il m'a fallu du temps pour comprendre ton problème mais en fait c'est tout bête :
quand tu fais :
Code :
|
tu ne crées pas un tableau mais une référence vers un tableau (à cause des crochets). Il faut en faire ceci :
Code :
|
ça marchera sûrement mieux
Marsh Posté le 14-08-2002 à 17:18:00
j'ai bien remplacés les [] par ()...
je retrouve toujours l'ARRAY....
Marsh Posté le 13-08-2002 à 13:48:29
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(' )