Script IF en Perl
Résolu
Kharec
Messages postés
4146
Date d'inscription
Statut
Contributeur
Dernière intervention
-
Kharec Messages postés 4146 Date d'inscription Statut Contributeur Dernière intervention -
Kharec Messages postés 4146 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour les amis! =)
Voilà, je travaille ma syntaxe if en PERL, et j'ai un petit problème que je ne parviens pas à résoudre... Je vous narre cela. Dans le script suivant, même si ma condition est respectée, le script passe toujours à else...
Voici le script (pas intelligent, mais c'est pour utiliser if, donc j'ai mis ce qui me passait par la tête, pour le texte ^^):
Voilà... Il n'est peut être pas super bien écrit, je vous l'accorde ^^. Donc je voudrai votre aide pour debugger ce script et comprendre pourquoi il ne fonctionne pas.
Merci à vous et bon dimanche =)
Voilà, je travaille ma syntaxe if en PERL, et j'ai un petit problème que je ne parviens pas à résoudre... Je vous narre cela. Dans le script suivant, même si ma condition est respectée, le script passe toujours à else...
Voici le script (pas intelligent, mais c'est pour utiliser if, donc j'ai mis ce qui me passait par la tête, pour le texte ^^):
#! /usr/bin/perl
use strict;use warnings;
my $rep="Bien!" ;
print "Comment allez-vous?\n" ;
chomp(my $sant=<STDIN>) ;
if ( my $sant=my $rep ) {
print "Super!\n" ;
}
else {
print "Ah...\n" ;
}
Voilà... Il n'est peut être pas super bien écrit, je vous l'accorde ^^. Donc je voudrai votre aide pour debugger ce script et comprendre pourquoi il ne fonctionne pas.
Merci à vous et bon dimanche =)
8 réponses
-
hello
et avec
if ( my $sant == my $rep ) -
Je vois que dubcek a répondu, mais à cause des bugs actuels du site, je ne peux pas voir sa réponse... Je m'excuse auprès de lui.. Si il pouvait me l'écrire en pv, ce serait sympa =)
-
[kharec@mandriva bac à sable]$ ./if Comment allez-vous? mal Use of uninitialized value $rep in numeric eq (==) at ./if line 12, <STDIN> line 1. Use of uninitialized value $sant in numeric eq (==) at ./if line 12, <STDIN> line 1. Super!
Voilà, dubcek! -
Donc je l'ai laissé comme dans mon premier post pour le moment et je réfléchis pleinement (mais un petit coup de main serait pas de refus ^^). Merci à toi et aux autres qui viendraient :-)
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Salut,
Tes variables $sant et $rep sont déjà définies, donc n'utilise pas my dans le if. De plus, utilise l'opérateur eq pour la comparaison dans le if.
Ce qui donne :if ($sant eq $rep )
Cdlt -
Salut,
D'autres variantesunless ( $sant cmp $rep ) { print "Super!\n" ; }else { print "Ah...\n" ; } # if ( !($sant cmp $rep )) { print "Super!\n" ; }else { print "Ah...\n" ; } # if ( $sant=~/^$rep$/ ) { print "Super!\n" ; }else { print "Ah...\n" ; } # if ( $sant cmp $rep ){ print "Ah...\n"; }else{ print "Super!\n"; }
-
Salut,
Ou avec une somme de contrôleif ( unpack("%32C*",$sant) == unpack("%32C*",$rep)){ print "Super!\n"; }else{ print "Ah...\n"; }
C'était pour s'amuser, puisqu'il faut prendre en compte le risque de collisions ;-) -
Merci beaucoup à vous tous, c'est vraiment sympa de votre part. Je vous suis vraiment reconnaissant! =)