Kai Diefenbach: Entweder - Oder (Aber Nicht beides!!!)

Beitrag lesen

Hallo,

Eine Mutter kommt mit Zwei Äpfeln nach Hause,
einem grünen und einen roten Apfel.

Sie fragt Max,
welchen Apfel er will.

---!!!!---
Den Grünen Apfel ODER den Roten ??
---!!!---

Nun kann sich Max für EINEN der beiden entscheiden,
ENTWEDER  grün,  ODER rot,
aber _nicht_ beide.

Die Tatsächliche Perl-Frage:

if (($test eq "2") || ($test =~ /^\d+$/))  { ... }

Wenn  (($test 2 ist) ODER ($test eine Natürliche Zahl ist))  { ... }


Seht ihr das Problem?
Max kann sich für den roten _oder_ den grünen Apfel entscheiden.

Gesetzt den Fall $test enthält 4.
Diese obige IF-Abfrage ist TRUE,
weil 4 ist eine natürliche Zahl,
auch wenn es nicht 2 ist,
aber da es eine Natürliche Zahl ist, wird es True.

Wenn $test aber 2 enthält....
Dann treffen Beide zu. (Problem !)

-!!- Dann würde Max nicht entweder grün Oder rot nehmen,
-!!- sondern Beide Äpfel !

IMHO, hinkt der Vergleich:

Oben schliesst das Eine, das Andere aus. Rot _ODER_ grün. Ein einfarbiger Apfel kann nicht beides sein.

$test kann aber sehr wohl eine 2 _UND_ eine natürliche Zahl sein, da 2 eine Untermenge von |N ist.

Evtl. möchtest Du so etwas:

if ($test == 2) { #foo }
elsif ($test =~ /^\d+$/) { #bar } # ?

Aber vielleicht ist es doch besser, Du erläuterst uns das noch mal anhand Deines konkreten Perlcodes.

Besten Dank und

Liebe Grüße,
Aquariophile

Gruß Kai