String auf Übereinstimmung testen

hi, ich würde gern eine EIngabe testen, ob sie mit einem String übereinstimmt. Dabei sollen nach jeden misslungen VErsuch, diesen String zu erraten, Tips eingestreut werden. GRundsätzlich machbare AUfgabe, aber wo ist bei meinem Programm der Haken bzw. der Fehler? Es verläßt nie die While SChleife, und auch wenn ich nach dem 3. Tipp oder so, die richtige EIngabe mache, wird die IEngabe als falsch interpretiert.
#! user/bin/perl
use strict;
{
my $wort = "Reichtum";
print "Bitte machen Sie Ihre Eingabe und erraten Sie den String\n";
chomp (my $Eingabe = <STDIN>);
my $counter = 0;
if ($Eingabe eq $wort) { print "Sie haben den String erraten\n"; last }
else {print "Sie haben den String nicht erraten\n"; $counter++; }
while ( ($counter <7) && ($Eingabe ne $wort )) {
if ( $counter == 1 ) {
my $laenge = length ($wort);
print"Ein kleiner Tipp. Das Wort besteht aus $laenge Buchstaben.\n"; }
if ($counter ==2) {
my @wort = split(//, $wort);
print "Ein kleiner Tipp. Der erste Buchstabe des Wortes ist @wort[0]\n";}
if ($counter == 3) {
my @wort = split(//, $wort);
print "Ein kleiner Tipp. Der letzte Buchstabe des Wortes ist @wort[-1]\n"; }
if ($counter == 4) {
my @wort = split(//, $wort);
my @Eingabe = split(//, $Eingabe);
if (@wort[1] eq @Eingabe[1]) { print "Ein kleiner tipp Ihr zweiter Buchstabe ihrer Eingabe ist richtig\n";}
if (@wort[1] lt @Eingabe[1]) { print "Ein kleiner tipp Ihr zweiter Buchstabe ist zu groß\n";}
if (@wort[1] gt @Eingabe[1]) { print "Ein kleiner tipp Ihr zweiter Buchstabe ihrer Eingabe ist zu klein\n";}
}
if ( $counter == 5) {
my @wort = split(//, $wort);
print"Die ersten 3 Buchstaben des zu erratenden Wortes sind: @wort[0] @wort[1] @wort[2]\n";}
if ( $counter == 6) { print"Loser\n"; last}
$counter++;
$Eingabe= <>;
}
}
Trackback URL für diesen Beitrag:
- Anmelden oder Registrieren um Kommentare zu schreiben
- 1195 Aufrufe
-

Dir fehlt da ein "chomp" wenn
Dir fehlt da ein "chomp" wenn Du innerhalb der while-Schleife die Benutzereingabe einliest.
Perl-Magazin "$foo"
Perl-Nachrichten