Linux 15.036 Themen, 107.107 Beiträge

+++LINUX: perl: --> while (... ) { ... }

gelöscht_322266 / 2 Antworten / Baumansicht Nickles

Hallo,

ich habe ein

     while (.... ) { ......  }

Problem mit den Klammern "{  }".

Ohne while funktioniert dies, mit while läuft ein Fehler.

    perl kapitel.1.14-15.perl
syntax error at kapitel.1.14-15.perl line 33, near ")  {"
syntax error at kapitel.1.14-15.perl line 39, near "}"
Execution of kapitel.1.14-15.perl aborted due to compilation errors.

Es sind nur 2 geschlossene Klammern.

Kann jemand das lösen?

Danke und Gruss

edsw1

#!/usr/bin/perl
%worte = qw(
  fred         Kamel
  barney     Lama
  betty        Alpaka
  wilma     Alpaka
);
print "Wie heissen Sie?\n";
$name = <STDIN>;
chomp ($name);
$origigaler_name = $name;
print   " 1 $original_name\n";
$name =~ s/\W.*//;
$name =~ tr/A-Z/a-z/;
print " 2 name  $name\n";
if ($name eq "randal") {    #begin if,0
  print " 3 Hallo Randal! Schön, dass du da bist ..\n";
} #0
else {                #ende if/begin else,1
  print " 4 Hallo $origigaler_name!\n";
  $geheimwort = $worte{$name};
  chomp ($geheimwort);
  print " 8  Geheimwort $geheimwort\n";
  if ($geheimwort eq ""){ #3
    $geheimwort ="groucho";
#    chomp ($geheimwort);
   print " 5 Geheimwort $geheimwort\n";
  }                #ende if,3
  print "6 Wie lautet das Geheimwort\n";
  $rateversuch= <STDIN>;
  chomp ($rateversuch);
print " 7 RateVersuch $rateversuch\n";
While ($rateversuch ne $geheimwort)  {
    print "Falsch geraten, noch einmal\n ";
    $rateversuch = <STDIN>;
    chomp ($rateversuch);
print "9 neuer Rateversuch $rateversuch\n ";
    };
}

bei Antwort benachrichtigen
mi~we gelöscht_322266 „+++LINUX: perl: --> while (... ) { ... }“
Optionen

Die "}" in der allerletzten Zeile ist doch irgendwie zu viel, oder?!

"Es wäre dumm, sich über die Welt zu ärgern. Sie kümmert sich nicht darum." (Marc Aurel)
bei Antwort benachrichtigen
gelöscht_322266 mi~we „Die in der allerletzten Zeile ist doch irgendwie zu viel, oder?!“
Optionen

Das letzte "}" ist nicht zu viel.

Wenn du das while (...) {...}  auskommentierst, dann siehst du es.

Das "while" ist innerhalb des "else".

Wenn man das ausserhalb des "else" legt und "while" hinter /ausserhalb legt, dann geht es.

Es verträgt sich nicht das "while" innerhalb des "else".

bei Antwort benachrichtigen