Calocybe: Brauche kleine Hilfe bei Verarbeitung eines Text-Strings

Beitrag lesen

Hi Bio!

if $wort~=/ OR / {$orgesetzt = 1;} else {orgesetzt=0;}
if $wort~=/ AND / {$andgesetzt = 1;} else {andgesetzt=0;}

Es muss natuerlich

if ($wort =~/ OR /) $orgesetzt = 1; else orgesetzt=0,
if ($wort~=/ AND /) $andgesetzt = 1; else andgesetzt=0;

heissen... wie peinlich.

Schade, schon wieder falsch. ;-) In Perl duerfen die geschweiften Klammern naemlich nicht einfach so weggelassen werden wie in JS oder C. Der Perl-Autor meinte, dadurch irgendeinen Konflikt vermeiden zu koennen, der angeblich auftreten kann, wenn man die Klammern weglassen koennte. Aber warum machst Du's nicht einfach so:

$or = ($wort =~ / OR /) ? 1 : 0;
$and = ($wort =~ / AND /) ? 1 : 0;

Der Rest muesste aber stimmen... sonst poste ich nochmal :-)

if ($orgesetzt XOR $andgesetzt)

xor muss kleingeschrieben werden. Es geht aber auch so (tested):

$boolean = ($and && !$or && 'AND') || ($or && !$and && 'OR') || "";

(In perldoc perlop Abschnitt Synopsis stehen die Precedence rules, deren Kenntnis einem mitunter viele Klammern sparen kann. (In diesem Fall koennte man uebrigens *alle* Klammern weglassen, aber das ist der Uebersichtlichkeit imho auch nicht gerade zutraeglich.))

So long