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

Programmation et administration système Perl Discussion :

Hierarchie mode projet


Sujet :

Programmation et administration système Perl

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Points : 7
    Points
    7
    Par défaut Hierarchie mode projet
    Re-bonjour,

    Pour reprendre le post : http://www.developpez.net/forums/d14...iable-externe/

    Je voudrais créer une arborescence mode projet:
    dans le bin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bin/script_generateur.pl
    dans le conf :
    et dans le build il y aura le résultat de l'execution du bin/script_generateur.pl

    voici ce que j'ai mis :
    bin/script_generateur.pl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/usr/bin/perl
     
    use File::Copy;
    use strict;
    use warnings;
    use configuration;
     
    print "@$_\n" for @clients;
    conf/configuration.pm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/usr/bin/perl
     
    package configuration;
     
    use Exporter;
     
    our @ISA = 'Exporter';
    our @EXPORT = qw(@clients);
     
    our @clients = ( ['site', 'site1', 'site2'],
                    ['evol', 'evol1', 'evol2', 'evol3']
    );
    Mais malheuresement ça ne marche pas :
    lorsque je suis dans le répertoire projet/bin/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    perl script_generateur.pl
    Can't locate configuration.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at script_generateur.pl line 6.
    BEGIN failed--compilation aborted at script_generateur.pl line 6.
    Il se peut que mon code soit juste, mais j'aimerai d'une part juste verifié, et d'autre part demandé comment faire pour ne plus avoir d'erreur. dois-je ajouter un chemin à @INC? @INC est une variable d'environnement?! j'ai pourtant effectué la commande : export INC=$INC:/chemin/to/my/project/, mais toujours le même problème... je ne sais vraiment pas quoi faire...

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Utilise la syntaxe suivante pour ajouter les répertoires :

    "chemin" étant naturellement le répertoire où se trouve ton module. Cette ligne doit naturellement se trouver avant le "use" de ton module.

    Pour plus d'informations: CPAN use lib

  3. #3
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Tu peux aussi, dans ton shebang, mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #!/usr/bin/perl -I/conf/
    -I pour include

    J'ai une préférence pour les chemins absolus, mais c'est discutable.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  4. #4
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Points : 7
    Points
    7
    Par défaut
    Désolé de l'absence.

    Avec linclude #!/usr/bin/perl -I /product/admivweb/Proxy_pac_v2/conf ça marche lorsque j'exectute mon code depuis :
    [admivweb@su11656:/product/admivweb/Proxy_pac_v2] perl bin/script_generateur.pl
    et
    [admivweb@su11656:/product/admivweb/Proxy_pac_v2] perl /product/admivweb/Proxy_pac_v2/bin/script_generateur.pl
    mais ça ne marche plus lorsque j'exectute comme ceci :
    [admivweb@su11656:/product/admivweb/Proxy_pac_v2/bin] perl script_generateur.pl
    open failed : No such file or directory at script_generateur.pl line 16.

  5. #5
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Ce qui veut dire que ton script se compile correctement mais qu'à l'exécution, il ne trouve pas le fichier utilisé ligne 16. Il y a quoi, dans la ligne 16?

    Sinon, il faut sans doute éviter d'avoir un espace entre l'option -I et le chemin du répertoire à ajouter à @INC.

  6. #6
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Points : 7
    Points
    7
    Par défaut
    bon j'ai finalement mis toutes mes lignes de code avec un chemin absolut et ca marche depuis n'importe où.

    script_generateur.pl :
    open(TEMPLATE, "<", "/product/admivweb/Proxy_pac_v2/tmp/template.txt") or die("open failed : $!");

    open (FIC_101, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw1-valid-ipp1.pac") or die("open failed : $!");
    open (FIC_102, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw1-valid-ipp2.pac") or die("open failed : $!");
    open (FIC_111, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw1-valid1-ipp1.pac") or die("open failed : $!");
    open (FIC_112, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw1-valid1-ipp2.pac") or die("open failed : $!");
    open (FIC_121, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw1-valid2-ipp1.pac") or die("open failed : $!");
    open (FIC_122, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw1-valid2-ipp2.pac") or die("open failed : $!");
    open (FIC_131, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw1-valid3-ipp1.pac") or die("open failed : $!");
    open (FIC_132, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw1-valid3-ipp2.pac") or die("open failed : $!");
    open (FIC_201, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw2-valid-ipp1.pac") or die("open failed : $!");
    open (FIC_202, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw2-valid-ipp2.pac") or die("open failed : $!");
    open (FIC_211, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw2-valid1-ipp1.pac") or die("open failed : $!");
    open (FIC_212, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw2-valid1-ipp2.pac") or die("open failed : $!");
    open (FIC_221, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw2-valid2-ipp1.pac") or die("open failed : $!");
    open (FIC_222, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw2-valid2-ipp2.pac") or die("open failed : $!");
    open (FIC_231, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw2-valid3-ipp1.pac") or die("open failed : $!");
    open (FIC_232, ">", "/product/admivweb/Proxy_pac_v2/build/$clients[$i][0]-psw2-valid3-ipp2.pac") or die("open failed : $!");
    Le truc c'est que maintenant il n'est plus portable. Or je voudrai qu'il soit portable...

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2013
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 247
    Points : 406
    Points
    406
    Par défaut
    si tu veux qu'il soit portable, avec ton exemple, il suffirait peut être juste de mettre le chemin en paramètre genre:

    lancement : perl script_generateur.pl "/product/admivweb/Proxy_pac_v2"
    dans script:open(TEMPLATE, "<", "$ARGV[0]/tmp/template.txt") or die("open failed : $!");
    dans script:open(TEMPLATE, "<", "$ARGV[0]/build/XXX.pac") or die("open failed : $!");

    Mais pour cela il faut que ton arborescence soit toujours la même! sinon tu peux mettre les 2 chemins distincts en paramètres de l'agent
    perl script_generateur.pl "Chemin/fichier/txt" "Chemin/fichiers/pac"

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/05/2015, 14h25
  2. Réponses: 0
    Dernier message: 05/05/2015, 11h46
  3. Job Hierarchy : mode d'emploi ?
    Par jeanphi45 dans le forum Développement de jobs
    Réponses: 7
    Dernier message: 12/03/2010, 16h53
  4. [Maven 2]conseil sur la hierarchie des projets
    Par Sniper37 dans le forum Maven
    Réponses: 2
    Dernier message: 17/01/2007, 10h07
  5. Réponses: 4
    Dernier message: 18/07/2006, 11h33

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