perldoc -f map
देखें। map
में दो रूप हैं: map({block} @array)
और map(expression, @array)
। बाद वाले मिलकर इसलिए की तरह इस्तेमाल किया जा सकता है:
perl -le 'print map(("a".."z")[rand 26], 1..5)'
perl -le 'print map +("a".."z")[rand 26], 1..5'
कारण
perl -le 'print map ("a".."z")[rand 26], 1..5'
काम नहीं करता है, क्योंकि यह की तरह
perl -le 'print(((map("a".."z"))[rand(26)]), 1..5)'
दूसरे शब्दों में पार्स करते "a".."z"
बन map
का एकमात्र तर्क, जो मान्य नहीं है। इसे कोष्ठक के एक अतिरिक्त सेट या एक unary +
के साथ असंबद्ध किया जा सकता है।
कोड जो वास्तव में काम नहीं करता था? यह '{}' के बिना किया जा सकता है। – aschepler
@aschepler: हाँ, लेकिन यदि आपने ब्रेसिज़ को हटा दिया है, तो आपको ब्लॉक और सूची के बीच एक अल्पविराम जोड़ने की आवश्यकता है। –