Thread Block vs. Hashref
(25 answers)
Opened by barney at 2024-08-02 13:17
Nach map kann entweder ein Code-Block map BLOCK LIST oder Ausdruck map EXPR, LIST folgen. Eine geschweifte Klammer kann beides einleiten, und der Perl-Interpreter muss eine Entscheidung treffen. In t2.pl und t3.pl fällt die Entscheidung zugunsten von Code-Block und alles ist ok. In t1.pl interpretiert Perl die geschweiften Klammer als Hash-Referenz, also als EXPR, und vermisst nun das Komma.
Damit kann man übrigens den Ausdruck auch mit dem gewünschten Ergebnis zum Laufen kriegen, gibt aber keinen Lesbarkeitsbonus: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 use strict; use warnings; use Data::Dx; my @ElementList; push @ElementList, map { "$_", 'X' }->%*, ( 1, 2 ); Dx( \@ElementList ); |