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 :

Can't find string terminator "EOF"


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2018
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 300
    Points : 67
    Points
    67
    Par défaut Can't find string terminator "EOF"
    Bonjour à tous,

    Je m'exerce au PERL à travers la création d'un petit script pour mon serveur Nagios.
    J'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Can't find string terminator "EOF" anywhere before EOF at check_disque.pl line 15.
    Mon script est le suivant :
    Code PERL : 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
    39
    40
    #!/usr/bin/perl
    #=====================================================================
    # Auteur : Admin
    # Date   : 13/03/2022
    # But    : plugin Nagios pour vérifier l'espace disque utilisé
    #=====================================================================
    # Module à utiliser
    use strict;
    use warnings;
    use Nagios::Plugin;
    use feature qw(switch say);
    use Getopt::Long;
     
    # Détails de l'écran d'aide
    my $help = <<EOF;
     Plugin Nagios pour contrôler l'espace disque
     
      usage: $0 -w Warning --c Critical
     
    Options:
     -h, --help
           L'écran de l'aide
     -w, --warning=INTEGER
           Le seuil d'avertissement
     -c, --critical=INTEGER
           Le seuil critique
     
           exemples:
           $0  -w 80 -c 90
    EOF
      my $warning=0;
      my $critical=0;
      my $exit=0;
    # Récupération des valeurs de paramètres
    my $result = GetOptions(
       "w|warning=i"=> \$warning,
       "c|critical=i" => \$critical,
       "h|help"  => \$help,
    );
    ...

    Merci d'avance les perleux !

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 910
    Points : 6 703
    Points
    6 703
    Par défaut
    C'est visiblement lié à la définition de ta chaîne en Heredoc. Je te conseille de vérifier s'il n'y a pas d'espaces (ou tabulations ou n'importe quel caractère blanc horizontal) avant ou après le EOF censé terminer la chaîne. Aussi, et également pour des raisons de présentation du code, laisse un ligne vide après ce EOF.

    À noter que la syntaxe Heredoc est bien sympathique mais pas super pratique dés lors qu'on prend garde à une bonne indentation de son code (c'est ton cas, n'est ce pas?), puisqu'elle impose que la chaîne qui la délimite soit au début de la ligne, ce qui peut éventuellement rompre l'indentation du code. Utiliser la syntaxe qq{...} est moins contraignant de ce point de vue.

    D'une manière générale, être rigoureux (toujours les mêmes règles de présentation, nommage de variable intelligent) et soigneux (les appliquer systématiquement, aérer son code, le commenter si besoin) en ce qui concerne l'indentation et la présentation du code évite bien des déboires.

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/06/2014, 16h33
  2. utilisation de std::find( string )
    Par ccensam dans le forum SL & STL
    Réponses: 1
    Dernier message: 24/11/2006, 23h07
  3. [VB6]Compil error: can't find project or library
    Par riesseg dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 03/05/2006, 23h28
  4. Erreur perl Can't use string ,
    Par vodevil dans le forum Langage
    Réponses: 5
    Dernier message: 01/04/2006, 20h46
  5. Réponses: 7
    Dernier message: 07/04/2005, 15h45

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