Problème de reconnaissance de fichiers - Perl - Programmation
MarshPosté le 23-10-2005 à 12:50:14
Salut à tous.
Bon en gros mon problème est simple : je liste le contenu d'un répertoire (répertoire de ficheirs .log d'un client IRC) avec le code suivant :
Code :
#!/usr/bin/perl -w
use strict;
my $chemin = "c:/program files/mirc/logs/";
my $compte=0;
my $file;
my @file;
my @infos;
opendir(REP,$chemin) or die "Ce repertoire ne semble pas exister.";
while($file=readdir(REP))
{
push (@file,$file);
}
closedir(REP);
foreach (@file)
{
if ($_) {
$compte++;
@infos=stat($chemin.$_);
print $_.", et ce fichier fait ".$infos[7]." octets.\r\n"; }
}
print $compte." fichiers dans le repertoire.\r\n";
Le truc magique, c'est que dans ma boucle foreach, si je mets if(-f $_), j'aurai 0 fichiers. Si je laisse comme ça, j'aurai toute la liste de mes fichiers. Et ce qui est étrange, c'est que si je prends un dossier avec des fichiers .txt à l'intérieur, le if(-f) marchera convenablement.
Alors un fichier .log n'est pas un fichier ? Ou bien j'ai fait une erreur grossière ? Que se passe-t-il ?
Marsh Posté le 23-10-2005 à 12:50:14
Salut à tous.
Bon en gros mon problème est simple : je liste le contenu d'un répertoire (répertoire de ficheirs .log d'un client IRC) avec le code suivant :
Le truc magique, c'est que dans ma boucle foreach, si je mets if(-f $_), j'aurai 0 fichiers. Si je laisse comme ça, j'aurai toute la liste de mes fichiers.
Et ce qui est étrange, c'est que si je prends un dossier avec des fichiers .txt à l'intérieur, le if(-f) marchera convenablement.
Alors un fichier .log n'est pas un fichier ? Ou bien j'ai fait une erreur grossière ? Que se passe-t-il ?
(les rn sont des \r\n)