कार्य: नक्शा का उपयोग करके हैश बनाने के लिए, जहां कुंजी दिए गए सरणी @ ए के तत्व हैं, और मान पहले कुछ फ़ंक्शन f द्वारा लौटाई गई सूची के तत्व हैं ($ element_of_a):पर्ल: सूचियों के लिए पहला तत्व
my @a = (1, 2, 3);
my %h = map {$_ => (f($_))[0]} @a;
च जब तक सभी ठीक() एक खाली सूची देता है (कि च (के लिए बिल्कुल सही है), और उस मामले में मैं undef आवंटित करने के लिए) चाहते हैं। त्रुटि निम्न कोड के साथ reproduced किया जा सकता है:
my %h = map {$_ =>()[0]} @a;
त्रुटि की तरह ही "हैश काम में तत्वों की विषम संख्या" लग रहा है। जब मैं कोड को फिर से लिखने ऐसी है कि:
my @a = (1, 2, 3);
my $s =()[0];
my %h = map {$_ => $s} @a;
या
my @a = (1, 2, 3);
my %h = map {$_ => undef} @a;
पर्ल बिल्कुल शिकायत नहीं है।
तो मुझे इसे कैसे हल करना चाहिए - वापस लौटाई गई सूची के पहले तत्वों को प्राप्त करें(), जब लौटाई गई सूची खाली हो जाती है?
पर्ल संस्करण 5.12.3
धन्यवाद।
लपेटें 'f' करने के लिए कॉल इतनी है कि जब यह एक खाली सूची देता है, आप की आपूर्ति' undef' या अन्यथा सूची लौटाया के पहले तत्व। –