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 :

require, appel autre fichier


Sujet :

Langage Perl

  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Par défaut require, appel autre fichier
    Bonjour,

    Via require, j'importer mes fonctions qui sont dans un autre fichier.

    Je veux faire un autre fichier pour stocker mes toutes mes déclarations de toutes mes variables afin d'alléger mon code principal mais ça ne fonctionne pas.
    Il me dit que rien n'est déclaré, donc l'importation ne se fait pas correctement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # !usr/bin/perl -w
    use strict;
    use warnings;
    require 'variables.pl';
    Y a til une autre possibilité ?
    Ou bien c'est une autre façon de faire pour les variables que require ?

    En vous remerciant par avance.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Par défaut
    Bonjour,

    Ton problème ressemble à celui-ci

    Lilian.

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    As-tu terminé ton fichier Variables.pm avec l'instruction suivante ?

    As-tu utilisé l'exportation (module Exporter) de sorte à exporter par défaut toutes les variables ? (voir perldoc Exporter).

    Edit : mis à part cela, je ne vois aucun intérêt à séparer les données des traitements... j'ai l'impression que tu souhaites revenir à une programmation Cobol

  4. #4
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Par défaut
    Oui ce post c'est le mien lilian_h ici...

    Philou, voici mon fichier que je dois appeler, j'avais bien respecté le "1;" déjà mais ça ne marche pas :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #######################################################################################################
    #                              Variables du scripte parser_form.pl                                    #
    ####################################################################################################### 
     
    my $gene = 0; # compteur pour connaitre le nombre de lignes avant Application Actions
    my $nIndentForm = 0; #  variable où je stocke le nombre de tabulations de mes Forms
    my $nIndentChild = 0; # variable où je stocke le nombre de tabulations de mes Childs
     
    my @t = (); # tableau ou sera stocké le fichier lignes par lignes
    my $a = 0; # compteur du tableau @t avec les lignes du fichier
     
    my $NomForm ; # Nom de la fenêtre
    my @tab_Form =([0]); # Tableau des fenêtres avec les propriétés
    my $nTabForm = 0; # Tabulation de la fenêtre
    my $tab_form_ligne = 0; # Compteur des fenêtres
    my $nTabFormProp = 0; # Tabulation des propriétés à recupérer
     
    my $NomChild ; # Nom de la Child table
    my @tab_Child =([0]); # Tableau des Childs avec les propriétés
    my $nTabChild = 0; # Tabulation de la Child
    my $nTabChildLast = 0; # indentation de la précédente Child 
    my $nTabChildProp = 0; # Tabulation des propriétés à recupérer
    my $tab_child_ligne = 0; # Compteur des Childs
    my $tab_child_ligne_prec = 0; # valeur de la ligne précédente
     
    my $j = 0; # Compteur pour le nombre de propriétés dans les fenêtres ou les Childs
    my $y = 0; # Compteur pour parcourir de 0 à nombre de fenêtres ou de Childs
    my $cpt = 0; #Compteur pour compter le nombre de lignes
    my $nTabChildPropData = 0;
     
    my $nIndentActuel = 0; # indique le niveau d'indentation de la ligne en cours
    my $IndentPrec = 0; # indique le niveau d'indentation de la ligne précédente
     
    1; 
     
    #######################################################################################################
    #                                                                                                     #
    #######################################################################################################
    Et ça le début de mon fichier main ou je fais le require :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # !usr/bin/perl -w
    use strict;
    use warnings;
    require 'fonctions.pl' ;
    require 'variables.pl' ;
    L'erreur, c'est qu'il ne voit pas l'appel à ce fichier car il me dit que rien n'est déclaré dans mon fichier :

    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
    18
    19
    20
    21
    22
    23
    24
     
     
    Global symbol "$j" requires explicit package name at parser_form_tab.pl line 300.
    Global symbol "$j" requires explicit package name at parser_form_tab.pl line 300.
    Global symbol "@tab_Form" requires explicit package name at parser_form_tab.pl li
    Global symbol "$y" requires explicit package name at parser_form_tab.pl line 301.
    Global symbol "$j" requires explicit package name at parser_form_tab.pl line 301.
    Global symbol "$y" requires explicit package name at parser_form_tab.pl line 310.
    Global symbol "$y" requires explicit package name at parser_form_tab.pl line 310.
    Global symbol "$tab_child_ligne" requires explicit package name at parser_form_ta
    Global symbol "$y" requires explicit package name at parser_form_tab.pl line 310.
    Global symbol "$j" requires explicit package name at parser_form_tab.pl line 311.
    Global symbol "$j" requires explicit package name at parser_form_tab.pl line 311.
    Global symbol "$j" requires explicit package name at parser_form_tab.pl line 311.
    Global symbol "@tab_Child" requires explicit package name at parser_form_tab.pl l
    Global symbol "$y" requires explicit package name at parser_form_tab.pl line 312.
    Global symbol "$j" requires explicit package name at parser_form_tab.pl line 312.
    Global symbol "$y" requires explicit package name at parser_form_tab.pl line 321.
    Global symbol "$y" requires explicit package name at parser_form_tab.pl line 321.
    Global symbol "$tab_function_ligne" requires explicit package name at parser_form
    Global symbol "$y" requires explicit package name at parser_form_tab.pl line 321.
    Global symbol "$j" requires explicit package name at parser_form_tab.pl line 322.
    Global symbol "$j" requires explicit package name at parser_form_tab.pl line 322.
    Global symbol "$j" requires explicit package name at parser_form_tab.pl line 322.
    Philou, étant donné que c'est pas des variables typés et que je commence a en avoir pas mal, je veux les mettre dans un autre fichier pour y voir plus cliare , car mon code commence a atteindre les 400 lignes ...

  5. #5
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    La réponse est dans cette question
    Citation Envoyé par Philou67430 Voir le message
    As-tu utilisé l'exportation (module Exporter) de sorte à exporter par défaut toutes les variables ? (voir perldoc Exporter).
    A savoir, ajouter dans le fichier des variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use Exporter;
    our @EXPORT qw(@t $a $NomForm @tab_Form $nTabForm $tab_form_ligne $nTabFormProp $j $y $cpt $nTabChildPropData $nIndentActuel $IndentPrec);
    Par ailleurs, je maintiens l'idée suivante
    Edit : mis à part cela, je ne vois aucun intérêt à séparer les données des traitements... j'ai l'impression que tu souhaites revenir à une programmation Cobol
    J'ajoute que je ne vois que des inconvénients à séparer ainsi les variables des traitements, notamment au niveau de la maintenance, qui sera exécrable. Il est préférable, et de loin, séparer fonctionnellement une application en modules...
    Je te déconseille très fortement de faire ainsi. Outre les problèmes de conflits que tu pourrais avoir dans le futur avec des variables locales (, cela ne t'apporte rien du tout.

  6. #6
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Par défaut
    Ok merci Philou pour la réponse et ton conseil, j'ai testé ça marche mais suite a ta recommandation je ne vais pas les séparer.

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

Discussions similaires

  1. [POO] appel d'une méthode d'un autre fichier, le tout objet
    Par aaaaaaaa dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/07/2007, 18h43
  2. [JAVA] Appeller fonction qui est dans un autre fichier
    Par Aspic dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/05/2007, 21h12
  3. appel d'une variable d'un autre fichier
    Par jmbonnaz dans le forum MATLAB
    Réponses: 1
    Dernier message: 18/04/2007, 11h08
  4. comment appelé un fichier SQL server a partir d'un autre
    Par cyrille21 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/06/2006, 16h21

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