script perl pour récursivement la liste de tous les fichiers dans le répertoire

J'ai écrit à la suite d'un script perl mais le problème est qu'elle a toujours d'aller dans d'autre partie de reporting et non un fichier. J'ai des fichiers dans le répertoire que je donne dans l'entrée. Ce que je fais mal?

Mon exigence est récursive de visiter tous les fichiers dans un répertoire, de l'ouvrir et de le lire dans une chaîne de caractères. Mais la première partie de la logique est un échec.

#!/usr/bin/perl -w
use strict;
use warnings;
use File::Find;

my (@dir) = @ARGV;
find(\&process_file,@dir);

sub process_file {
    #print $File::Find::name."\n";
    my $filename = $File::Find::name;
    if( -f $filename) {
        print " This is a file :$filename \n";
    } else {
        print " This is not file :$filename \n";
    }
}
Ce code semble fonctionner parfaitement bien pour moi (ActiveState Perl 5.10 sur XP). Comment faites-vous appel à votre script? Ce exactement voulez-vous dire par "Mais la première partie de la logique de l'échec."?
Quelle plateforme utilisez-vous? Qui version en perl?
"Mon exigence est récursive de visiter tous les fichiers dans un répertoire, de l'ouvrir et de le lire dans une chaîne de caractères. Mais la première partie de la logique de l'échec." En Première partie de la logique que je voulais dire , visite tous les fichiers d'un répertoire. Un fichier est un échec pour moi.
C'est la version de which, vous voulez juste perl --version ou perl -V, ou peut-être $(which perl) --version ou $(which perl) -V si perl n'est pas dans votre PATH.
désolé , c'est la version correcte : perl, v5.8.8 construit pour x86_64-linux-thread-multi

OriginalL'auteur TopCoder | 2011-03-09