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 :

erreur d'execution de mon programme en perl


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Points : 5
    Points
    5
    Par défaut erreur d'execution de mon programme en perl
    bonsoir, mon programme consiste a:
    -connexion a telnet(host et username et password sont des valeurs dynamiques)
    -lancer la commande 'show ISDN active'
    -afficher le resulat de la commande
    -si le resultat=28 l'erreur worning s'affiche et on decconecte de la session
    -si le resultat=30 l'erreur critical s'affiche et on decconecte de la session
    -si non il saffiche ok

    voici mon code source ecrit en perl:
    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
    #!/usr/bin/perl
    use strict;
    use Net::Telnet;
    use Getopt::Std;
    my %options=();
    getopts("H:U:P",\%options);
    my$session=new Net::Telnet->session(
    - hostname =>shift || $options{H},
    - username => shift || $options{U},
    - password => shift || $options{P},
    );
    my @lines=$session->cmd('show ISDN active');
    my $reslt=@lines;
    {   
    my %errors=('ok'=>0, 'warning'=>1, 'critical'=>2);
    if ($reslt=28){
    print ("error \n", $errors=>1);
    exit 1;
    close->$session;
    }   
    elsif($reslt=30){
    print("error \n", $errors=>2);
    exit 2;
    close->$session;
    }
    else {
    print ("error \n", $errors=>0);
    exit 0;
    close->$session;
    mais l'erreur suivante s'affiche:
    Global symbol "$errors" requires explicit package name at ./test.pl line 17.
    Global symbol "$errors" requires explicit package name at ./test.pl line 22.
    Global symbol "$errors" requires explicit package name at ./test.pl line 27.
    Missing right curly or square bracket at ./test.pl line 29, at end of line
    syntax error at ./test.pl line 29, at EOF
    Execution of ./test.pl aborted due to compilation errors.

  2. #2
    Membre averti

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 184
    Points : 322
    Points
    322
    Par défaut
    Et non pas :
    Mais tu sembles avoir inverser tes clés et tes valeurs. Ne voudrais-tu pas plutôt écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my %errors=(0=>'ok', 1=>'warning', 2=>'critical');
    Edit : il te manque une accolade fermante tout à la fin.

  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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Il manque aussi la balise CODE (icône ) pour poster du code sur le forum... ce qui permet de conserver l'indentation, et d'avoir un script lisible.

  4. #4
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    merciii voici mon programme corrigé mais il me reste une erreur de end of file:
    Missing right curly or square bracket at ./test.pl line 33, at end of line
    syntax error at ./test.pl line 33, at EOF

    code:
    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
    #!/usr/bin/perl
    use strict;
    use Net::Telnet;
    use Getopt::Std;
    my %options=();
    getopts("H:U:P",\%options);
    my$session=new Net::Telnet->session(
    - hostname =>shift || $options{H},
    - username => shift || $options{U},
    - password => shift || $options{P},
    );
    $session->open(shift || $options{H});
    $session->login(shift || $options{U},shift || $options{P});
    my @lines=$session->cmd('show ISDN active');
    my $reslt=@lines;
    {
    my %errors=(0=>'ok',1=>'warning',2=>'critical');
    if ($reslt=28){
    print ("error \n", $errors{1});
    exit 1;
    close->(shift || $options{H});
    }
    elsif($reslt=30){
    print("error \n", $errors{2});
    exit 2;
    close->(shift || $options{H});
     
    }
    else {
    print ("error \n", $errors{0});
    exit 0;
    close->(shift || $options{H});
    }

  5. #5
    Membre averti

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 184
    Points : 322
    Points
    322
    Par défaut
    Il y a une obscure accolade ouvrante en plein milieu de ton code qui n'a pas sa "soeur".

  6. #6
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    c'est vrai j'ai trouvé la faute mais encore une erreur d'execution s'affiche :
    Can't locate object method "session" via package "Net::Telnet" at ./test.pl line 7. malgré que j'au déja installer libnet-telnet-perl.ca peu quoi étre le problém???.
    merci d'avance.

Discussions similaires

  1. Erreur: à l'execution d'un programme utilisant CURL
    Par webfranc dans le forum Dev-C++
    Réponses: 0
    Dernier message: 14/12/2008, 10h33
  2. message d'erreur au lancement de mon programme
    Par krikri1504 dans le forum Langage
    Réponses: 5
    Dernier message: 08/12/2008, 17h38
  3. Erreur d'execution d'un programme
    Par mouss4rs dans le forum Linux
    Réponses: 9
    Dernier message: 23/09/2008, 19h30
  4. probleme lors de l'execution de mon programme
    Par s-ehtp dans le forum Débuter
    Réponses: 24
    Dernier message: 04/11/2007, 23h15
  5. Réponses: 3
    Dernier message: 31/08/2006, 16h11

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