in Perl (v5.14.2), warum ist map {+0,0} () korrekt, aber map {0,0} () nicht? [Duplikat]

8

Es scheint, dass Perl {+0,0} als BLOCK und {0,0} als EXPR behandelt Aber warum? Ist das eine besondere Bestimmung?

Wenn ich sicherstellen will, dass das {} ein anonymer Hash ist, egal was die Klammern enthalten, muss ich ein '+' vor {} setzen?

danke.

    
exprosic 17.05.2013, 11:29
quelle

1 Antwort

3

Warum? Weil es entweder sein könnte, und der Parser nicht weit genug voraus schaut, um sicher zu wissen, wann es entscheiden muss.

Müssen Sie ein '+' vor {} setzen, damit es unabhängig vom Inhalt von {} als anonymer Hash-Konstruktor behandelt wird? Ja.

    
ysth 17.05.2013, 11:40
quelle

Tags und Links