Das folgende Snippet funktioniert nicht wie erwartet:
%Vor%Da sowohl $ k {"foo"} als auch $ k {"bar"} definiert sind, ist die erwartete Ausgabe "Defined". Das Ausführen des Codes gibt jedoch "Nicht definiert" zurück.
Jetzt, da ich mit dem Code herumspielte, erkannte ich, dass das Platzieren von Klammern um jeden der not defined()
-Aufrufe das gewünschte Ergebnis liefert:
Ich kann mir vorstellen, dass dies etwas mit der Vorrangstellung des Betreibers zu tun hat, aber könnte jemand erklären, was genau vor sich geht?
Vorrangproblem.
%Vor%bedeutet
%Vor%welches zu
äquilibriert ist %Vor%wenn Sie wirklich wollen
%Vor%Lösungen:
!defined($k{"foo"}) && !defined($k{"bar"})
not defined($k{"foo"}) and not defined($k{"bar"})
(not defined($k{"foo"})) && (not defined($k{"bar"}))
PS - Die Sprache heißt "Perl", nicht "PERL".
Tags und Links perl