Récupération de la liste des sous-répertoires (haut niveau) dans un répertoire à l'aide de Perl
Je voudrais lancer un script perl pour trouver uniquement les sous-répertoires dans un répertoire. Je ne voudrais pas avoir le "." et ".." est revenu.
Le programme que je suis en train d'utiliser ressemble à ceci:
use warnings;
use strict;
my $root = "mydirectoryname";
opendir my $dh, $root
or die "$0: opendir: $!";
while (defined(my $name = readdir $dh)) {
next unless -d "$root/$name";
print "$name\n";
}
La sortie de cette cependant, est le "." et "..". Comment puis-je exclure de la liste?
OriginalL'auteur Sundar | 2011-04-22
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez collecter les dirs dans un tableau:
Si vraiment vous voulez juste imprimer le dirs, vous pouvez le faire:
OriginalL'auteur Sam Choukri
Aussi, le module File::Find::Règle fait varier interface agréable pour ce type de chose.
Pense que vous vouliez dire, si $nom =~ /^\.\.?+$/;
OriginalL'auteur SymKat
Juste modifier votre vérifier la date d' $nom est égal à '.' ou '..' et passez l'entrée.
OriginalL'auteur ewh
Fichier::Slurp
read_dir
exclut automatiquement le point spécial répertoires (. et ..)pour vous. Il n'est pas nécessaire pour vous explicitement de se débarrasser d'eux. Il effectue également la vérification de l'ouverture de votre répertoire:
OriginalL'auteur toolic