[PERL]Comparaison: Valeur nulle et zéro
khaz
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour,
mon problème porte sur une comparaison.
En effet,faire une boucle if avec comme condition qu'une valeur soit définie ou non.
voici un petit extrait de mon code :
if (! $Fic1{$cli})
{
print Sortie "$cli n'existe pas\n";
$cpt ++;
}
Après lecture de Fic1, j'ai une valeur $Fic1{$cli} = 0
pourtant, mon script va entrer dans mon if.
Je voudrais qu'il ne rentre dans mon if QUE si la valeur $Fic1{$cli} est indéfinie.
Je vous met l'extrait de mon debug :
Watchpoint 0: $cli changed:
old value: '00029310'
new value: '29310'
Watchpoint 1: $Fic1{$cli} changed:
old value: undef
new value: '0'
main::(confront_date.pl:65): if (! $Fic1{$cli})
main::(confront_date.pl:66): {
DB<8>
main::(confront_date.pl:67): print Sortie "$cli n'existe pas\n";
Quelle comparaison effectuer pour ne rentrer dans le if que il $Fic1{$cli} n'est pas définie ?
mon problème porte sur une comparaison.
En effet,faire une boucle if avec comme condition qu'une valeur soit définie ou non.
voici un petit extrait de mon code :
if (! $Fic1{$cli})
{
print Sortie "$cli n'existe pas\n";
$cpt ++;
}
Après lecture de Fic1, j'ai une valeur $Fic1{$cli} = 0
pourtant, mon script va entrer dans mon if.
Je voudrais qu'il ne rentre dans mon if QUE si la valeur $Fic1{$cli} est indéfinie.
Je vous met l'extrait de mon debug :
Watchpoint 0: $cli changed:
old value: '00029310'
new value: '29310'
Watchpoint 1: $Fic1{$cli} changed:
old value: undef
new value: '0'
main::(confront_date.pl:65): if (! $Fic1{$cli})
main::(confront_date.pl:66): {
DB<8>
main::(confront_date.pl:67): print Sortie "$cli n'existe pas\n";
Quelle comparaison effectuer pour ne rentrer dans le if que il $Fic1{$cli} n'est pas définie ?
A voir également:
- [PERL]Comparaison: Valeur nulle et zéro
- Comparaison million milliard - Accueil - Technologies
- Logiciel comparaison photo gratuit - Télécharger - Photo & Graphisme
- Comparaison samsung a15 et a16 - Accueil - Téléphones
- Comparaison prix amazon - Accueil - Commerce
- Prix Amazon : comment suivre les évolutions de tarifs - Guide
1 réponse
Salut,
condition qu'une valeur soit définie ou non.
Il faut comprendre la différence entre une variable définie ou pas et un teste de verité (boolean) ou context boolean si tu veux.
Pour tester si une variable est définie tu as la fonction defined.
Voici un exemple qui pourra t'eclairer
lami20j
condition qu'une valeur soit définie ou non.
Il faut comprendre la différence entre une variable définie ou pas et un teste de verité (boolean) ou context boolean si tu veux.
Pour tester si une variable est définie tu as la fonction defined.
Voici un exemple qui pourra t'eclairer
#!/usr/bin/perl use strict;use warnings; my $var; my $var2; my $var3; # contexte chaîne de caractère $var .= "aaa"; print "$var\n"; # contexte numérique ++$var2; print "$var2\n"; # avec négation de defined # si n'est pas défini if(! defined($var3)){ print "\$var3 n'est pas défini\n"; } # avec defined + unless unless( defined($var3)){ print "\$var3 n'est pas défini\n"; } __END__Exécution
lami20j@debian:~/trash$ perl ccm.pl aaa 1 $var3 n'est pas défini $var3 n'est pas défini--
lami20j