Thomas N: Einfacher Formmailer, Danke-Seite als .pl, mit "unbedingtem" if

Beitrag lesen

Hi Michael,

"if" ist keine Schleife - nur eine Verzweigung.

Ja, und im Buch "21 Tage Perl" (das liegt gerade am nächsten zu mir) steht noch, dass "if" eine
Bedingung ist, einverstanden?

Also das _if ($rc)_ ist mein Problem. Was passiert da?

In Perl ist jeder skalare Wert "true", der nicht 0 oder die leere
Zeichenkette ist.
(Hm, wie das mit undef ist, weiß ich gerade nicht auswendig.)

Also von 1 bis unendlich und a bis Z usw. (also strings z.B., jkhkhkh) ist alles true.
Na gut, ich komm auf Dich zurück! ;-)

Wenn Du also weißt, daß in $rc eine Zahl steht, dann ist
    if ($rc)
gleichbedeutend mit
    if ($rc != 0)

Also, zum mitdenken, "!=" bedeutet unterschiedlich/ungleich, dass heisst, ich kann die if-Verzweigung
auch so schreiben, richtig? Ja:
my $rc = 0;
if ($rc != 0)
                   {
                      $color = '#CFCFCF';       # 0 = dunkelgrau
                      $rc = 0;
                   }
           else
                   {
                      $color = '#EFEFEF';       # 1 = hellgrau
                      $rc = 1;
                   }

Wie kommt man darauf, dass
 if ($rc)
gleichbedeutend mit
 if ($rc != 0)
ist? Oder hat man das einfach festgelegt, oder ist das Mathematik? Hätt ich dann wohl verpasst in der Schule!

Die Änderung von $rc läßt sich übrigens aus der Abfrage herausziehen
und die Zuweisung der Farbe etwas abkürzen:

$color = ($rc ? '#CFCFCF' : '#EFEFEF');
    $rc    = 1 - $rc;

So kommt man dann völlig ohne explizites "if" aus.

Michael, für so etwas brauch ich noch etwas Bedenkzeit...so auf den ersten Blick...

Viele Grüsse
Thomas N == Neu-User
:-)