Thread Ist Hash in Array vorhanden? (15 answers)
Opened by RalphFFM at 2008-08-18 13:49

MatthiasW
 2008-08-18 20:27
#113676 #113676
User since
2008-01-27
367 Artikel
BenutzerIn
[default_avatar]
Escape+2008-08-18 15:26:53--
Nach meinem Verständnis wird auf der linken Seite der Bedingung geprüft, ob $->{234} einen definierten Wert enthält.
Auf der rechten Seite der Bedingung wird geprüft ob der definierte Wert dem Muster entspricht.

Das stimmt soweit, allerdings wird die rechte Seite nur geprüft, falls die linke Seite true war. Stichwort: lazy evaluation

Escape+2008-08-18 15:26:53--
exists() würde prüfen ob der Key $->{234} im Hash vorhanden ist und, falls nicht, beim Durchlauf der rechten Seite der Bedingung, eine Fehlermeldung erzeugen (Use of uninitialized value ... ).

Sehe ich das falsch?

Ja, das siehst du falsch. exists() prüft ob der key vorhanden ist, ist er nicht vorhanden, wird die rechte Seite nicht durchlaufen.

Escape+2008-08-18 15:26:53--
P.S. '&&' statt 'and' könnte besser sein.

http://p3rl.org/perlop - 'C-style logical AND' und 'logical AND'
Der einzige Unterschied zwischen den beiden Operatoren ist, dass 'and' nicht so eine hohe Priorität hat wie '&&'.

MfG
perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'

View full thread Ist Hash in Array vorhanden?