hallo
durch
‚while ($Radius = „undef“)‘
wird $Radius der Wert „undef“ zugewiesen und damit ist die
Bedingung für die while-Schleife immer war und sie wird
ausgeführt. Um zu prüfen ob $Radius den Wert „undef“ hat, muß
man den Befehl
‚while ($Radius eq „undef“)‘
benutzen.
ähh, eher nicht. undef ist ein „reserviertes“ Wort in perl und bezeichnet den Zustand einer nicht deklarierten Variablen vor der ersten Zuweisung. Man prüft das mit der undef($var) - funktion, die wahr (!= 0) liefert wenn die $var undef ist.
es ist besser auf einen leerstring zu prüfen, da:
eine leere Variable erfasst wird und undef-Variablen erfasst werden.
tips für den perl-beginner:
- immer use strict; verwenden. das erzwingt daß Variablen deklariert werden müssen. Das verhindert Fehler.
- Filehandles (auch STDIN und STDOUT) werden per Konvention GROSS geschrieben.
Also:
use strict;
my ($pi, $radius, $umfang, $flaeche);
$pi=3.141592654;
while (!$radius) { print "Wie ist der Radius\n"; $radius = ; chomp($radius); }
$umfang=(2 \* $radius \* $pi);
$flaeche=($pi \* ($radius \*\* 2));
(! negiert die Bedingung, $radius ist wahr wenn es „“ bzw. 0 ist)
cu, holli