Forum Programmation.perl Can't find string terminator "EOF"

Posté par  . Licence CC By‑SA.
Étiquettes :
0
13
mar.
2022

Bonjour à tous,

Je m'exerce au PERL à travers la création d'un petit script pour mon serveur Nagios.
J'ai l'erreur suivante :

    Can't find string terminator "EOF" anywhere before EOF at check_disque.pl line 15.

Mon script est le suivant :

    #!/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 !

  • # À mon humble avis, c'est un problème d'indentation

    Posté par  . Évalué à 5. Dernière modification le 14 mars 2022 à 07:35.

    À mon humble avis, c'est un problème d'indentation. La ligne qui contient la chaîne de caractères « EOF » ne doit pas être indentée.

  • # Rajoute un tiret

    Posté par  (site web personnel) . Évalué à 6. Dernière modification le 14 mars 2022 à 08:50.

    Comme en shell, tu peux simplement mettre un tiret avant EOF et alors tu peux indenter ce dernier.

    my $help = <<-EOF;
    ...
    ...
    EOF

    Perl suit visiblement la même syntaxe que le shell (sauf le ; obligatoire)

    git is great because linus did it, mercurial is better because he didn't

  • # Commentaire supprimé

    Posté par  . Évalué à -1. Dernière modification le 16 mars 2022 à 08:01.

    Ce commentaire a été supprimé par l’équipe de modération.

  • # zabbix

    Posté par  (site web personnel) . Évalué à 2.

    je vais surement me faire moinsser mais faudrait migrer nagios vers zabbix tu vas revivre..

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.