J'essaie de lire les informations retourn=E9es par l'op=E9rateur -M, =E0 la
fois dans le r=E9pertoire d'o=F9 est lanc=E9 mon script ainsi que dans un
sous-r=E9pertoire. J'obtiens cependant un comportement un peu
=E9trange ...
La version qui me permet d'obtenir exactement ce que je veux est la
suivante :
foreach (<*>) {print ($_,"\t",-M,"\n")};
print "\n";
opendir REP,"temp" or die "echec";
chdir "temp";
while ($fic=3Dreaddir(REP)) {
print $fic,"\t",-M($fic),"\n";
}
Si je retire le chdir, l'op=E9rateur -M ne fonctionne plus sur le
fichier def.txt du sous-r=E9pertoire (qui est cependant bien lu), et la
date affect=E9e =E0 .. est celle de la racine (donc du .. du r=E9pertoire d=
e
lancement, et non du sous-r=E9pertoire) :
Et enfin si je garde le chdir mais que je m'abstiens d'affecter une
variable lors du while de lecture du sous-r=E9pertoire, avec un code
comme celui-ci :
foreach (<*>) {print ($_,"\t",-M,"\n")};
print "\n";
opendir REP,"temp" or die "echec";
chdir "temp";
while (readdir(REP)) {
print $_,"\t",-M,"\n";
}
L'affichage du nom de fichier et de sa date ne donnent rien :
Si je retire le chdir, l'opérateur -M ne fonctionne plus sur le fichier def.txt du sous-répertoire (qui est cependant bien lu), et la date affectée à .. est celle de la racine (donc du .. du répertoire de lancement, et non du sous-répertoire) :
On ne devrait jamais poster une question sur un forum Perl sans l'avoir utiliser ! ;-)
La réponse un peu plus longue : 'readdir' retourne le nom de chaque fichier du répertoire lu et non son chemin d'accès. Pour tester les fichiers du sous-répertoires avec -M (et sans faire appel à 'chdir'), il faut utiliser :
-M "temp/$fic"
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/> Perl en français - <http://perl.mines-albi.fr/>
À (at) Tue, 15 Jun 2010 06:38:14 -0700 (PDT),
"Eric C." <eric.cabrol@gmail.com> écrivait (wrote):
La version qui me permet d'obtenir exactement ce que je veux est la
suivante :
foreach (<*>) {print ($_,"t",-M,"n")};
print "n";
opendir REP,"temp" or die "echec";
chdir "temp";
while ($fic=readdir(REP)) {
print $fic,"t",-M($fic),"n";
}
Si je retire le chdir, l'opérateur -M ne fonctionne plus sur le
fichier def.txt du sous-répertoire (qui est cependant bien lu), et la
date affectée à .. est celle de la racine (donc du .. du répertoire de
lancement, et non du sous-répertoire) :
On ne devrait jamais poster une question sur un forum Perl sans l'avoir
utiliser ! ;-)
La réponse un peu plus longue : 'readdir' retourne le nom de chaque
fichier du répertoire lu et non son chemin d'accès. Pour tester les
fichiers du sous-répertoires avec -M (et sans faire appel à 'chdir'), il
faut utiliser :
-M "temp/$fic"
--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>
Si je retire le chdir, l'opérateur -M ne fonctionne plus sur le fichier def.txt du sous-répertoire (qui est cependant bien lu), et la date affectée à .. est celle de la racine (donc du .. du répertoire de lancement, et non du sous-répertoire) :
On ne devrait jamais poster une question sur un forum Perl sans l'avoir utiliser ! ;-)
La réponse un peu plus longue : 'readdir' retourne le nom de chaque fichier du répertoire lu et non son chemin d'accès. Pour tester les fichiers du sous-répertoires avec -M (et sans faire appel à 'chdir'), il faut utiliser :
-M "temp/$fic"
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/> Perl en français - <http://perl.mines-albi.fr/>
Eric C.
On 15 juin, 23:26, Paul Gaborit wrote:
La réponse courte :
use warnings;
On ne devrait jamais poster une question sur un forum Perl sans l'avoir utiliser ! ;-)
La réponse un peu plus longue : 'readdir' retourne le nom de chaque fichier du répertoire lu et non son chemin d'accès. Pour tester les fichiers du sous-répertoires avec -M (et sans faire appel à 'chdir'), il faut utiliser :
-M "temp/$fic"
Mieux vaut tard que jamais : merci !
Eric
On 15 juin, 23:26, Paul Gaborit <Paul.Gabo...@invalid.invalid> wrote:
La réponse courte :
use warnings;
On ne devrait jamais poster une question sur un forum Perl sans l'avoir
utiliser ! ;-)
La réponse un peu plus longue : 'readdir' retourne le nom de chaque
fichier du répertoire lu et non son chemin d'accès. Pour tester les
fichiers du sous-répertoires avec -M (et sans faire appel à 'chdir'), il
faut utiliser :
On ne devrait jamais poster une question sur un forum Perl sans l'avoir utiliser ! ;-)
La réponse un peu plus longue : 'readdir' retourne le nom de chaque fichier du répertoire lu et non son chemin d'accès. Pour tester les fichiers du sous-répertoires avec -M (et sans faire appel à 'chdir'), il faut utiliser :