Bonsoir à tous, c'est encore moi.. j'arrive pas à résoudre le problème , en fait mon bjectif est ouvrir un dossier des fichiers, rechercher un mot dans ces fichier , le programme doit afficher le premier fichier contenant ce mot et s'arrête dès qu'il trouve le mot,
voilà le code
Code :
- #
- # GetFilesList - Renvoie la liste des fichiers d'un repertoire (en mode recursif)
- #
- sub GetFilesList
- {
- my $Path = $_[0];
- my $FileFound;
- my @FilesList=();
- # Lecture de la liste des fichiers
- opendir (my $FhRep, $Path)
- or die "Impossible d'ouvrir le repertoire $Path\n";
- my @Contenu = grep { !/^\.\.?$/ } readdir($FhRep);
- closedir ($FhRep);
- foreach my $FileFound (@Contenu) {
- # Traitement des fichiers
- if ( -f "$Path/$FileFound" ) {
- push ( @FilesList, "$FileFound" );
- }
- # Traitement des repertoires
- elsif ( -d "$Path/$FileFound" ) {
- # Boucle pour lancer la recherche en mode recursif
- push (@FilesList, GetFilesList("$FileFound" ) );
- }
- }
- return @FilesList;
- }
- #
- # Boucle principale
- #
- my $mot="fruit";
- chomp($mot);
- my @Files = GetFilesList ("/home/lenovo/Bureau/dossier" );
- my @sorted = sort @Files;
- LOOP1: foreach my $File (@sorted) {
- open my $FIC, "<", "$dir/$File" or die "!!!!Can't open $File for reading!!!!";
- while (my $line = <$FIC> ) {
- chomp($line);
- if ($line =~ /$mot/) {
- print "$File: $line"; print "ok"; print "\n";
- last LOOP1;
- }
- }
- }
|
mais il y a un pblme dans l'ouverture de fichier en lecture!!!