Thread Klammer-Fehler in if-Abfrage/Dereferenzierung -- Warum keine Fehlermeldung? (4 answers)
Opened by FoolAck at 2008-06-07 15:40

FoolAck
 2008-06-07 16:59
#110857 #110857
User since
2008-05-02
69 Artikel
BenutzerIn
[default_avatar]
Schon klar, allerdings nicht wegen fehlendem if, sondern wegen fehlender eröffnender Klammer:
Code: (dl )
1
2
3
4
5
6
use strict; use warnings;

sub foo {}
my @field = ([], [], []);

print STDOUT (${field [0][0] and not foo())}

gibt nur:
STDERR
Use of uninitialized value in print at - line 6.
Was mit meinem Problem ja nichts zu tun hat, das @field array ist halt leer...
(edit: arg, dass array wird ja garnicht geprintet. aber die Überprüfung liefert false (hier wahrscheinlich undef) zurück..)

Die Frage bleibt, warum eine Klammerung dieser Art:
Code: (dl )
( { ) }

keinen Syntax-Fehler darstellt...

Die if-Abfrage generell scheint übrigens zu funktionieren:
Code: (dl )
1
2
3
4
5
6
use strict; use warnings;

my @field = ([1], [0]);

if ( ${field[0][0]) } {print "feld [0]->[0] ist OK"}
if ( ${field[1][0]) } {print "feld [1]->[0] ist OK"}

View full thread Klammer-Fehler in if-Abfrage/Dereferenzierung -- Warum keine Fehlermeldung?