Arborescence d'un répertoire.
Bonjour.
Je suis étudiant en licence pro et j'ai un exercice à effectuer en PERL.
Je dois écrire un script qui affiche la sous arborescence d'un répertoire passé en paramètre sous forme d'un arbre et en l'absence de paramètre, on traitera le répertoire courant.
Pour l'instant j'ai fait cela mais cela ne fonctionne pas.
J'ai très peu programmer lors de mes études donc ce script me pose des problèmes.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| #!/usr/bin/perl
use warnings;
use Cwd;
my $rep = $ARGV[0];
my $fichier;
my @fich;
# test si un répertoire est passé en paramètre. Sinon utilisation du répertoire courant.
if (! defined($rep)) {
$rep = getcwd;
}
# appel de la fonction avec le répertoire a utilisé en paramètre.
&arbo($rep);
# fonction permettant la construction de l'arborescence.
sub arbo {
my $path= @_;
opendir my($dir),$path;
my @files = readdir $dir;
foreach $fichier (@files){
if ( -f "$path/$fichier" ) {
push(@fich , "$path/$fichier");
}
if ( -d "$path/$fichier" ){
#&arbo("path/$fichier");
}
}
closedir $dir;
print @fich;
} |
Voici les erreurs qui me sont donné lors de l'éxécution du script.
Code:
1 2
| readdir() attempted on invalid dirhandle $dir at ./arbo.pl line 22.
closedir() attempted on invalid dirhandle $dir at ./arbo.pl line 32. |
Merci d'avance pour votre aide.