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