Bu Perl v5.20 hata veren:Neden "map" BLOCK içinde interpolasyon yok?
use strict;
use warnings;
my @a = (2,3,9);
my %b = map { "number $_" => 2*$_ } @a;
Hata:
syntax error at a.pl line 4, near "} @a"
Execution of a.pl aborted due to compilation errors.
Bu değildir:
use strict;
use warnings;
my @a = (2,3,9);
my %b = map { "number ".$_ => 2*$_ } @a;
Neden map
BLOK içinde izin verilmeyen $_
ait değerleme de ?
map BLOCK LIST
map EXPR, LIST
Perl hangi kullandığınız sözdizimi belirlemek gerekir:
O değil: Eğer
İlgili kullanabilirsiniz sizin durumunuzda Yani
:
aşağıdaki
blokları ve karma kurucular belirsizliği giderecek pratik yollardır interpolasyon. Dizeden '$ _ 'öğesini kaldırırsanız, hala hatayı atar. – simbabqueBLOK'un içine parantez koymak yardımcı olacaktır. – simbabque
@ HåkonHægland sadece yazabildiğim '{; "number $ _" => 2 * $ _} 'yerine, değil mi? – jlovegren