này ném một lỗi trong Perl v5.20:Tại sao không có nội suy trong `map` BLOCK?
use strict;
use warnings;
my @a = (2,3,9);
my %b = map { "number $_" => 2*$_ } @a;
Lỗi:
syntax error at a.pl line 4, near "} @a"
Execution of a.pl aborted due to compilation errors.
này không:
use strict;
use warnings;
my @a = (2,3,9);
my %b = map { "number ".$_ => 2*$_ } @a;
Tại sao nội suy $_
không được phép trong map
BLOCK ?
Nó không phải là nội suy. Nếu bạn xóa '$ _' khỏi chuỗi nó vẫn ném lỗi. – simbabque
Đặt các dấu ngoặc đơn bên trong BLOCK sẽ giúp ích. – simbabque
@ HåkonHægland vì vậy tôi chỉ có thể viết '{; "số $ _" => 2 * $ _} 'thay vào đó, phải không? – jlovegren