IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modules Perl Discussion :

Problème d'utilisation de File::Find


Sujet :

Modules Perl

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Problème d'utilisation de File::Find
    Bonjour,
    Vrai débutant je suis desolé de poser une question sans doute naive mais je n'ai pas trouvé de réponse dans la FAQ à mon problème:
    Voici mon code appelé "tespat.pl" (je suis sur Windows XP Pro, mais j'obtiens le même message d'erreur sur un script similaire sous Linux):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    1 use warnings;
    2 use File::Find;
    3 use Cwd;
    4 $direct = getcwd;
    5 print "$direct \n";
    6 find (\$wanted, $direct);
    7 sub wanted {
    8 print $_;
    9 print $File::Find::name;
    10 print $File::Find::dir;
    11   }
    et voici la sortie du terminal:

    D:\perl\Test>tespat.pl
    D:/perl/Test
    Not a CODE reference at D:/perl/lib/File/Find.pm line 822

    pour info voici le code autour de la ligne 822 de D:/perl/lib/File/Find.pm:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    808     # push the starting directory
    809     push @Stack,[$CdLvl,$p_dir,$dir_rel,-1]  if  $bydepth;
    810 
    811     if ($Is_MacOS) {
    812 	$p_dir = $dir_pref;  # ensure trailing ':'
    813     }
    814 
    815     while (defined $SE) {
    816 	unless ($bydepth) {
    817	    $dir= $p_dir; # $File::Find::dir
    818 	    $name= $dir_name; # $File::Find::name
    819 	    $_= ($no_chdir ? $dir_name : $dir_rel ); # $_
    820	    # prune may happen here
    821 	    $prune= 0;
    822 	    { $wanted_callback->() };	# protect against wild "next"
    823 	    next if $prune;
    824 	}
    Merci d'avance à l'ame charitable qui voudra bien m'aider

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par jotape75
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    use warnings;
    use File::Find;
    use Cwd;
    $direct = getcwd;
    print "$direct \n";
    find (\$wanted, $direct);
     
    sub wanted {
      print $_;
      print $File::Find::name;
      print $File::Find::dir;
    }
    $wanted n'est jamais déclaré dans ton code (tu devrais utiliser le pragma "strict", ça t'aurait aidé), ce qui est déclaré c'est la subroutine wanted, dont tu peux prendre une référence avec \&wanted :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    use strict; use warnings;
    use File::Find;
    use Cwd;
    my $direct = getcwd;
    print "$direct \n";
    find (\&wanted, $direct);
     
    sub wanted {
      print $_;
      print $File::Find::name;
      print $File::Find::dir;
    }
    --
    Jedaï

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Merci bcp Jedai !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation du module File::Find
    Par mickael777 dans le forum Modules
    Réponses: 8
    Dernier message: 09/04/2010, 11h30
  2. Problème d'utilisation des files
    Par AraBorLeg dans le forum C
    Réponses: 4
    Dernier message: 06/01/2007, 20h55
  3. Problème d'utilisation de Mysql avec dev-c++
    Par Watchi dans le forum Dev-C++
    Réponses: 10
    Dernier message: 06/08/2004, 14h35
  4. Problème: Requête utilisant NOT IN
    Par fages dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/05/2004, 10h18
  5. problème d'utilisation avec turbo pascal 7.0
    Par le 27 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 03/12/2003, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo