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 :

Messages d'erreurs après exit


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 80
    Points : 57
    Points
    57
    Par défaut Messages d'erreurs après exit
    Bonsoir,

    Malgré mes recherches, je n'arrive pas à solutionner le pb ci-dessous. Pourriez-vous m'aider ?

    J'ai un script.pl qui fait appel à un fichier.ini dans lequel sont regroupées les variables utilsateurs.
    En tout début de script.pl, je teste la présence du fichier ini, et sors avec "exit" en cas d'absence.
    Mais dans ce cas, je récupère un paquet d'erreurs, ce qui est normal puisque les déclarations de
    variables sont absentes.

    Question : comment faire pour qu'après "exit" tout s'arrête : interprétation et message d'erreur ?

    Merci.

  2. #2
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 47
    Points : 56
    Points
    56
    Par défaut
    C'est une conséquence de la façon dont tu incorpores tes variables (avec "require" n'est-ce pas?) Le fichier appelé fait partie, corps et âme, désormais de ton programme, c'est normal que ce dernier fonctionne mal quand il ne le trouve pas.

    Soit il faut déclarer les variables préalablement, comme l'avait suggéré 2eurocents, soit il faut opter pour une solution à mon avis plus simple, qui est de parser un fichier texte (càd pas exécutable) qui contiendra les valeurs que tu veux. A mon avis, cela correspond mieux à ce que tu cherches.

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    montre nous ton bout de scripts.
    Normalement apres le exit le script s'arrete, mais s'il est dans une boucle, t'as dû mal ecrire ton script!!!
    fais voir le code

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 80
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par chostrama
    C'est une conséquence de la façon dont tu incorpores tes variables (avec "require" n'est-ce pas?) Le fichier appelé fait partie, corps et âme, désormais de ton programme, c'est normal que ce dernier fonctionne mal quand il ne le trouve pas.
    Bien vu ...
    Citation Envoyé par chostrama
    Soit il faut déclarer les variables préalablement, comme l'avait suggéré 2eurocents, soit il faut opter pour une solution à mon avis plus simple, qui est de parser un fichier texte (càd pas exécutable) qui contiendra les valeurs que tu veux. A mon avis, cela correspond mieux à ce que tu cherches.
    Je m'apprêtais à tester la proposition de 2eurocents.

    Citation Envoyé par chostrama
    A mon avis, cela correspond mieux à ce que tu cherches.
    C'est exact, je cherche la solution la plus simple pour l'instant.
    J'essaierai plus tard d'installer par exemple "Config::Tiny".

    @djibril,
    Voici les éléments :

    autoepgvdr.ini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    package autoepgvdr;
     
    #---------------------------------------------------------------------------
    # Param e-mail
    #---------------------------------------------------------------------------
    $From = 'PCTEST';
    $To = 'mail1';
    $Cc = 'mail2;
    Début de mon script.pl


    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
     
    #!/usr/bin/perl -w
    use strict;
     
    # Perl modules
    use MIME::Lite;
     
    # Long options
    use Getopt::Long;
     
    if ( ! -e "autoepgvdr.ini")
    {
    print "Abort : missing autoepgvdr.ini\n\n\n"; 
    exit
    }
     
    require "autoepgvdr.ini";
     
    #---------------------------------------------------------------------------
    # Param e-mail
    #---------------------------------------------------------------------------
    our $From	= $autoepgvdr::From;
    our $To		= $autoepgvdr::To;
    our $Cc		= $autoepgvdr::Cc;
    our $Subject =''; 
    our $Line1 = ''; our $Line2 = ''; our $Line3 = ''; our $Line4 = ''; our $Line5 = '';
    our $Line6 = ''; our $Line7 = ''; our $Line8 = ''; our $Line9 = ''; our $Line10 = '';
    our $AttachFilePath = '/video0/²configVDR/channels.conf_ok.log';
    our $AttachFileName ='channels.conf_ok.log';
     
    etc.. etc ..
    Qu'en pensez-vous ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 124
    Points : 145
    Points
    145
    Par défaut
    Hmm...

    #!/usr/bin/perl -w
    l'option -w t'affiche toutes les erreurs

    Essaye en le retirant

  6. #6
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par Hide
    l'option -w t'affiche toutes les erreurs

    Essaye en le retirant
    Je ne suis pas sûr que ce soit une bonne idée de le retirer !!!

    Un warning que l'on ne voit pas est une erreur en puissance (tous les programmeurs C qui utilisent des pointeurs ne le savent que trop).

    Il m'arrive même d'utiliser simultanément -w et "use warnings;" qui ne fournissent pas toujours le même niveau d'avertissement.

    J'aime mieux trop que pas assez ... c'est plus rassurant quand arrive le passage en exploitation.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 124
    Points : 145
    Points
    145
    Par défaut
    Je suis daccord mais dans son cas il n'affiche que les variables non défini à cause du fichier *.ini inéxistant .


    C'est a lui de voir mais si le problème n'est que la autant l'enlever pour empecher l'erreur.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 80
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par Hide
    Je suis daccord mais dans son cas il n'affiche que les variables non défini à cause du fichier *.ini inéxistant .


    C'est a lui de voir mais si le problème n'est que la autant l'enlever pour empecher l'erreur.
    C'est juste. Néanmoins, autant prendre de bonnes habitudes
    J'ai donc utilisé la solution de 2Eurocents. Un petit souci cependant avec cron :

    Quand le script est lancé via cron, il démarre correctement, mais le test de présence du fichier.ini échoue,
    à cause d'un pb de path. (Pourtant, le fichier.ini est toujours au même endroit que le script).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    # DO NOT EDIT THIS FILE - edit the master and reinstall.
    # (/tmp/crontab.29857 installed on Sat Nov  5 12:56:08 2005)
    # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
    57 12 * * * /video0/²configVDR/autoepgvdr.pl -d -m 2>1 >/dev/null
    Pour contourner le pb, j'ai créé une variable $GrabDir qui correspondand au répertoire de travail .
    Mais ceci nécessite un paramétrage utilisateur dans le script.pl, que je voudrais éviter.

    J'ai essayé une méthode dynamique, en faisant lire le path de travail du fichier.pl en début de script, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    my $chemin;
    $chemin (system `pwd`);
    Mais le path retourné n'est pas le bon...

    Y a -til une solution pour que le fichier ini soit vu par le script automatiquement ??

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 80
    Points : 57
    Points
    57
    Par défaut
    En parcourant le forum, j'ai trouvé la solution de Jedai qui fonctionne parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use FindBin; 
    print $FindBin::Bin;
    http://www.developpez.net/forums/vie...highlight=path

    Merci à tous pour votre aide.

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

Discussions similaires

  1. Message d'erreur après ajout de Ram
    Par Thrystan dans le forum Composants
    Réponses: 5
    Dernier message: 04/07/2007, 00h47
  2. message d'erreurs après copie de base oracle en 10G
    Par aymeric1970 dans le forum Administration
    Réponses: 1
    Dernier message: 11/05/2007, 11h01
  3. Réponses: 2
    Dernier message: 12/10/2006, 23h36
  4. Help - plein de messages d'erreur après avoir installé Free
    Par fute dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 18/12/2005, 14h33
  5. Surcharger le message d'erreur après un OnException
    Par Tirlibibi dans le forum XMLRAD
    Réponses: 2
    Dernier message: 24/04/2003, 11h42

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