Aide pour un script perl
Résolu
Bonjour,
Si quelqu'un pouvait me dire ou est ce que cela cloche dans mes lignes....
Ecrire un script Perl dont le rôle est de permettre à l'utilisateur de saisir une chaîne de caractères et
d'indiquer si cette chaîne représente une valeur numérique entière non signée (chaîne constituée
uniquement que de chiffres).
#!/usr/local/bin/perl
print "Saisir une phrase:";
$phrase=<STDIN>;
chomp $phrase;
$l=length($phrase);
for ($i=0;$i<$l;$i++)
{
$first=substr($phrase,$i,1);
}
for ($j=0;$j<10;$j++)
{
$je=$j
}
if ($first eq $je)
{
print "chiffres";
}
elsif ($first ne $je)
{
print"ooo"
}
Si quelqu'un pouvait me dire ou est ce que cela cloche dans mes lignes....
Ecrire un script Perl dont le rôle est de permettre à l'utilisateur de saisir une chaîne de caractères et
d'indiquer si cette chaîne représente une valeur numérique entière non signée (chaîne constituée
uniquement que de chiffres).
#!/usr/local/bin/perl
print "Saisir une phrase:";
$phrase=<STDIN>;
chomp $phrase;
$l=length($phrase);
for ($i=0;$i<$l;$i++)
{
$first=substr($phrase,$i,1);
}
for ($j=0;$j<10;$j++)
{
$je=$j
}
if ($first eq $je)
{
print "chiffres";
}
elsif ($first ne $je)
{
print"ooo"
}
Configuration: Windows XP Firefox 2.0.0.13
2 réponses
-
ModérateurSalut,
use strict et use warnings sont des pragmas qui permettent d'avoir un peu de discipline pour l'écriture de code
tu peux lire cet article http://perl.mines-albi.fr/DocFr/perlstyle.html
chomp(my $phrase=<STDIN>);
ici j'obtiens la chaîne de caractères
la fonction chomp permet de supprimer le \n a la fin de al chaine s'il existe
$phrase=~/^\d+$/?print "chiffres\n":print"ooo\n";
Ici c'est un peu plus compliqué.
en 1ère temps parlons de l'opérateur ternaire condition?si vrai:si faux;
donc si la condition est vrai c'est la 1ère partie de code qui sera exécuter
si c'est faux ça sera la 2ème qui s'exécute
parlons de la condition $phrase=~/^\d+$/
Si tu veux vraiement utiliser Perl sache que les expressions régulières sont très utilsées.
=~ c'est l'opérateur de correspondance
\d c'est une classe de caractère qui signifie tout caractère qui est un chiffre
l'équivalent est [0-9] - donc les chiffres de 0 à 9
le + c'est un quantificateur qui veut dire un, ou n'importe combien de fois tu peux
^ signifie un emplacement - le début de la chaîne
$ signifier un emplacement - la fin de la chaine
Voici la traduction
$phrase=~/^\d+$/
SI $phrase correspond à un chiffre ou à n'importe combien des chiffres tu peux de début de la chaîne à la fin de la chaîne ALORS (ici c'est ?) affiche "chiffres\n" SINON(ici c'est :) affiche "ooo\n";
j'espère que tu as compris un peu ;-)
-
ModérateurSalut,
#!/usr/bin/perl # use warnings;use strict; print "Saisir une phrase:"; chomp(my $phrase=<STDIN>); $phrase=~/^\d+$/?print "chiffres\n":print"ooo\n"; __END__