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

Langage Perl Discussion :

Commande pour insérer un source ?


Sujet :

Langage Perl

  1. #1
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    677
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 677
    Points : 638
    Points
    638
    Par défaut Commande pour insérer un source ?
    l'équivalent de

    #include en C

    ou

    source en TCL

    sans qu'on parle de module

  2. #2
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Dois-tu indiquer à Perl où se trouve un de tes modules? (Désolée mais je ne connais ni C ni TCL)
    Perl utilise la variable @INC contenant les chemins vers les répertoires contenant des modules, rajoute s'y celui de ton module.

  3. #3
    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
    En Perl on n'inclut pas du code source dans un script, on charge un module, avec son propre espace de noms, c'est nettement plus propre qu'une solution type "#include" (laquelle est possible en fait, mais oublie ça tout de suite, ce n'est pas une bonne solution).

    Un exemple court :
    fichier MyModule.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
    package MyModule; # espace de nom
    use strict; use warnings;
    use base 'Exporter'; # permet d'exporter des noms vers l'espace de nom du client du module
     
    our @EXPORT = qw($global_var my_sub); # noms exportés par défaut
    our @EXPORT_OK = qw($global_var_2); # noms exportés s'ils sont demandés explicitement
     
    our ($global_var, $global_var_2) = ("Hello", "World");
     
    sub my_sub {
      print "Hello World !";
    }
     
    1; # important, pour signaler que le module s'est bien chargé correctement
    Et ensuite :
    fichier script.pl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/usr/bin/perl
    use strict; use warnings;
     
    use MyModule;
     
    print $global_var, " ", $MyModule::global_var_2, "\n";
    my_sub();
     
    __END__
    Il faut que MyModule.pm soit dans l'un des chemins de @INC. Si besoin est, tu peux rajouter temporairement un chemin dans @INC en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    use lib "/ce/chemin/mene/a/mon/module";
    avant de charger ton module.

    --
    Jedaï

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/12/2008, 23h34
  2. Commande pour insérer une variable dans un script
    Par sliderman dans le forum Linux
    Réponses: 2
    Dernier message: 10/12/2007, 15h53
  3. Réponses: 2
    Dernier message: 15/05/2007, 12h14
  4. commande pour insérer une table dans un fichier
    Par mix_35 dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 13/03/2007, 20h22
  5. Réponses: 1
    Dernier message: 09/06/2006, 12h04

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