Script IF en Perl

Résolu/Fermé
Kharec Messages postés 4146 Date d'inscription dimanche 20 avril 2008 Statut Contributeur Dernière intervention 8 mai 2011 - 1 mars 2009 à 10:44
Kharec Messages postés 4146 Date d'inscription dimanche 20 avril 2008 Statut Contributeur Dernière intervention 8 mai 2011 - 1 mars 2009 à 13:40
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 ^^):

#! /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 =)
A voir également:

8 réponses

dubcek Messages postés 18752 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 3 octobre 2024 5 619
1 mars 2009 à 11:12
hello
et avec
if ( my $sant == my $rep )
0
Kharec Messages postés 4146 Date d'inscription dimanche 20 avril 2008 Statut Contributeur Dernière intervention 8 mai 2011 509
1 mars 2009 à 11:35
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 =)
0
Kharec Messages postés 4146 Date d'inscription dimanche 20 avril 2008 Statut Contributeur Dernière intervention 8 mai 2011 509
1 mars 2009 à 11:37
[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!
0
Kharec Messages postés 4146 Date d'inscription dimanche 20 avril 2008 Statut Contributeur Dernière intervention 8 mai 2011 509
1 mars 2009 à 11:48
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 :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
1 mars 2009 à 11:57
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
0
Kharec Messages postés 4146 Date d'inscription dimanche 20 avril 2008 Statut Contributeur Dernière intervention 8 mai 2011 509
1 mars 2009 à 12:01
Merci beaucoup, sujet résolu :-)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
1 mars 2009 à 12:26
Salut,

D'autres variantes
unless ( $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";
}


0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
1 mars 2009 à 12:47
Salut,

Ou avec une somme de contrôle
if ( 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 ;-)
0
Kharec Messages postés 4146 Date d'inscription dimanche 20 avril 2008 Statut Contributeur Dernière intervention 8 mai 2011 509
1 mars 2009 à 13:40
Merci beaucoup à vous tous, c'est vraiment sympa de votre part. Je vous suis vraiment reconnaissant! =)
0