यह पर्ल v5.20 में एक त्रुटि फेंकता है:क्यों 'मानचित्र' ब्लॉक के भीतर कोई इंटरपोलेशन नहीं है?
use strict;
use warnings;
my @a = (2,3,9);
my %b = map { "number $_" => 2*$_ } @a;
त्रुटि:
syntax error at a.pl line 4, near "} @a"
Execution of a.pl aborted due to compilation errors.
यह नहीं करता है:
use strict;
use warnings;
my @a = (2,3,9);
my %b = map { "number ".$_ => 2*$_ } @a;
$_
के प्रक्षेप map
ब्लॉक के भीतर की अनुमति नहीं क्यों है ?
map BLOCK LIST
map EXPR, LIST
पर्ल जो वाक्यविन्यास का उपयोग कर रहे यह निर्धारित करना चाहिए:
यह नहीं है
निम्नलिखित ब्लॉक और हैश कंस्ट्रक्टर्स को स्पष्ट करने के लिए सुविधाजनक तरीके हैं प्रक्षेप। यदि आप स्ट्रिंग से '$ _' हटाते हैं तो यह अभी भी त्रुटि को फेंकता है। – simbabque
ब्लॉक के अंदर कोष्ठक डालने से मदद मिलेगी। – simbabque
@ हाकॉनहेग्लैंड इसलिए मैं बस लिख सकता हूं {{; "संख्या $ _" => 2 * $ _} 'इसके बजाए, है ना? – jlovegren