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
| #!/usr/bin/perl
# Permet d'écrire un code plus propre et plus sûr
use strict;
my $numero=0;
# La norme veut que les descripteurs de fichier soient en majuscules.
# C'est pas obligatoire, mais c'est la norme.
# De même, il est fortement conseillé d'éviter les mots qui peuvent
# exister dans le langage, comme... test, par exemple. Simple mesure de sécurité
open (LOGFILE, "test.log") || die "Impossible d'ouvrir fichier";
# Tu n'est pas obligé de faire comme ça. En effectuant le while ( <DESCRIPTEUR>),
# tu charges automatiquement chaque ligne lue dans $_
# $ligne = <test>;
while ( <LOGFILE> )
{
# Sans paramètre, split() va découper $_, qui contient justement les lignes
# de notre fichier.
# De plus, avec le use strict, nous sommes désormais obligé de déclarer @tableau
my @tableau = split /:/;
# En PERL, on teste l'égalité numérique avec ==, et alphanumérique avec -eq
# En revance, ton test initial teste que... l'affectation fonctionne !
# Ce qui n'est évidemment pas ce que tu souhaites
# if ( $tableau[1] = "192.10.10.20") {
if ( $tableau[1] -eq "192.10.10.20" )
{
# Comme en C, on peut préférer écrirer : $numero++;
# Mais c'est pas obligatoire.
$numero=$numero+1;
}
}
print "$numero\n";
close(LOGFILE); |
Partager