Bonjour !

J'aimerais écrire un programme en perl permettant de lire un fichier très simple/

Fichier config :
Cpu CRITIQUE: Taux d.utilisation du CPU = 94,32 %:
Mem OK: Taux d.utilisation de la memoire = 43,51 %:
J'ai plus ou moins réussi à le faire en bash grâce à awk et quelques if et echo (j'aimerais faire avec print en bash aussi) :

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
#! /bin/bash
 
etat_cpu="$(awk -F ":" '{print $1}' config | grep Cpu)"
details_cpu="$(awk -F ":" '{print $2}' config | grep CPU)"
 
if [ "$etat_cpu" == "Cpu OK" ]; then
echo "OK - $details_cpu";
exit 0
fi
 
if [ "$etat_cpu" == "Cpu ATTENTION" ]; then
echo "Attention - $details_cpu";
exit 1
fi
 
if [ "$etat_cpu" ==  "Cpu CRITIQUE" ]; then
echo "Critique - $details_cpu";
exit 2
fi
J'aimerais faire la même chose en perl, mais je bloque un peu

Voici mon 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
#!/usr/bin/perl -w
use strict;
 
my $etat_cpu = `awk -F ":" '{print $1}' config | grep Cpu`
my $details_cpu = `awk -F ":" '{print $2}' config | grep CPU`
 
if ( my $etat_cpu eq "Cpu OK" ) {
print "OK - $details_cpu";
exit 0;
}
 
if ( my $etat_cpu eq "Cpu ATTENTION" ) {
print "Attention - $details_cpu";
exit 1;
}
 
if ( my $etat_cpu eq "Cpu CRITIQUE" ) {
print "Critique - $details_cpu";
exit 2;
}
Et j'ai ces belles erreurs :

"my" variable $etat_cpu masks earlier declaration in same statement at ./check_perltest.pl line 7.
syntax error at ./check_perltest.pl line 5, near "my "
Global symbol "$details_cpu" requires explicit package name at ./check_perltest.pl line 5.
syntax error at ./check_perltest.pl line 10, near "}"
Execution of ./check_perltest.pl aborted due to compilation errors.
Je débute en perl, merci de m'aider !