undefined greift scheinbar nicht

Bild von luke

Hallo zusammen,

ich bin Newcomer im Thema Perl und arbeite mich soeben darin ein.
Folgendes Codeschnippsel aus "Einführung in Perl" sollte eine Variable auf undef bzw. defined prüfen und eine entsprechende Ausgabe erzeugen.

$eingabe = <STDIN>;
if (defined ($eingabe)){
print "Die Eingabe lautet $eingabe";
}
else{
print "Es wurde kein Wert/String eingegeben";
}

Also, wenn ich nichts eingegeben habe und nur Enter drücke, sollte "Es wurde kein Wert/String eingegeben" angzeigt werden. Es wird aber immer "Die Eingabe lautet " eingegeben.
Ich habe es auch schon mit chomp versucht. Ergebnis war unverändert.
Was läuft hier falsch?

Beste Grüße
Luke

Trackback URL für diesen Beitrag:

http://community.perl.de/trackback/76
0
Eigene Bewertung: Keine

die eingabe wird immer

die eingabe wird immer defined sein, wenn du enter drückst. denn es steht ein newline drin.
1.das newline musst du zuerst abschneiden. mit
chomp $eingabe;

2. danach ist $eingabe ein leerer string, der immer noch defined ist. du musst also statt auf defined darauf prüfen, ob $eingabe ein leerer string ist oder nicht.

mit welchem buch hast du perl gelernt?

wenn du schnellere hilfe wünschst, schau mal bei http://www.perl-community.de/ vorbei, da sind viel mehr leute.

perl-community.de - das forum mit wiki, scripts und grosser FAQ

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer