Problem mit Perl-Skript

Kann mir jemand sagen, was an folgenden Zeilen eines Perl-Skriptes falsch ist:

if ( $in{projekt} eq „01“ ) { print „…“; }
if ( $in{projekt} eq „b01“ ) { print „…“; }
if ( $in{projekt} eq „a02“ ) { print „…“; }
if ( $in{projekt} eq „b02“ ) { print „…“; }
else { print „…“; }

Das Problem ist, dass er immer sowohl eine (die richtige) Ausgabe von einer if-Zeile schreibt, aber zusaetzlich auch die Ausgabe der else-Zeile. Nur das vierte Projekt (b02) funktioniert richtig.

Gruss - ein verzweifelter Roland

meine PERL Kenntnisse sind zwar rudimentaer, aber das ist logisch…

die IFs sind nicht geschachtelt, d. h. alle 4 IFs werden einzeln ausgefuehrt.

D. h. wenn A02 , sagt er im 2. If zwar ok, das 4. IF durchlaeuft er aber auch, also A02 b02 -> Fehler.

Also alle 4 IFs mit ELSE verketten !

Ob es eine mehrfach-IF Anweisung (wie CASE) oder sowas gibt weiss ich nicht, aber mit ELSEs wirds werden !

Gruss
Dirk

Mein Vorredner war schon auf der richtigen Spur (und Perl Kenntnisse brauchts dafuer auch nicht wirklich :wink:

if ( $in{projekt} eq „01“ ) { print
„…“; }

  1. Anweisung: falls richtig: print ausfuehren…

if ( $in{projekt} eq „b01“ ) { print
„…“; }

  1. Anweisung …

if ( $in{projekt} eq „a02“ ) { print
„…“; }

  1. Anweisung …

if ( $in{projekt} eq „b02“ ) { print
„…“; }
else { print „…“; }

  1. Anweisung: falls richtig print ausfuehren, sonst else (und wenn vorher schon einer richtig war, ist hier der else-Block gefragt)

Richtig:
if($a) {

} elsif ($b) {

} else {

}

gruss
kampi

Danke!!!

ganz klar, das sind 4 unabhängige Abfragen, das else gehört zur letzten

mach einfach elsif() beim zweiten bis letzten
also Syntax

if () { … }
elsif () { … }
elsif () { … }
elsif () { … }
elsif () { … }
else { … }

Bruno

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]