bonjour,
Je suis tout nouveau dans le monde de la programmation. Je dois réaliser un programme qui va llire un repertoire contenant des fichiers, créer un dossier à partir du nom de chaque fichiers contenus dans le répertoire, puis déplacer le fichier dans le dossier correspondant avant d'effectuer sur ce fichier un script perl (en l'occurence make_raw_envi.pl nom du fichier)

Le problème est qu'il n'effectue qu'une seule boucle et il ne la termine même pas. Il exécute bien le fichier perl (make_raw_envi.pl) mais après il s'arrête.

Quelqu'un aurait-il une solution ?????

voici le code :

opendir ( REP , $ARGV[0] ) || die "Erreur d'ouverture du repertoire $ARGV[0]";

$dir = $ARGV[0];

#Lecture du répertoire et affectation du répertoire sous REP.
#Affichage à l'écran du contenu du répertoire sous la forme d'une liste.

@file = readdir ( REP );

print "\nContenu du repertoire : \n";

foreach $f (@file) {

print "\n$f\n";

}

#Recherche du chemin complet du répertoire de travail et affectation à la variable $hdir.
#Après lecture du répertoire, il faut entrer de celui-ci pour effectuer la création de dossiers.

#use Cwd;

#$hdir = getcwd();

#$ch = "$hdir/$dir";

chdir $dir || die "Erreur dans le changement de repertoire de travail";

#Pour tout les fichiers contenus dans le répertoire, il y a création de la chaîne de
#caractère $h (YYMMDD) qui correspond au nom du futur dossier. Après avoir créer le dossier,
#il faut déplacer le fichier correspondant en renommant le chemin d'accès.

foreach my $f (@file) {

if ( -f $f ) {

$h = substr($f,16,6);

mkdir ($h) || die "\nCreation du dossier $f impossible";

rename ("$dir/$f","$dir/$h/$f") || die "\nImpossible de deplacer le fichier $h";


chdir "$h" || die "Erreur dans le changement de repertoire";

do `make_raw_envi.pl $f`;
}
}


Merci d'avance....