पर्ल में, for/foreach
, grep
, और map
के बीच कार्यक्षमता की एक सभ्य मात्रा ओवरलैप है। हालांकि, सिर्फ इसलिए कि संभावित रूप से उन सभी समस्याओं का समाधान करने के लिए उपयोग कर सकते हैं, इसका मतलब यह नहीं है कि वे उस विशेष नौकरी के लिए सबसे अच्छा उपकरण हैं (देखें: एक स्क्रूड्राइवर का उपयोग करके एक नाखून पाउंड करने के लिए)।
grep
: इसका उद्देश्य एक सूची को फ़िल्टर और जिसके परिणामस्वरूप सबसेट वापस जाने के लिए है।
map
: इसका उद्देश्य सूची को संशोधित करना और परिणामी संशोधित सूची को संशोधित करना है।
for/foreach
: इसका उद्देश्य एक सूची के माध्यम से पुन: प्रयास करना है और कुछ करें।
अब, आप for/foreach
साथ grep
और map
के हर उपयोग पूरा कर सकते हैं। grep
और map
मूल रूप से सूची प्रसंस्करण (for/foreach
) के विशिष्ट उपयोगों के लिए सिंटैक्टिक चीनी हैं जो विशेष रूप से आम और उपयोगी हैं। डिजाइन द्वारा, सम्मेलन द्वारा, और सर्वोत्तम प्रथाओं से, वे कुछ चीजों को बढ़ती सुविधा और स्पष्टता के लिए व्यापार करते हैं।
उन चीजों में से एक यह है कि grep
और map
एक मूल्य वापस करने का इरादा है। शून्य संदर्भ में उनका उपयोग निराश हो गया है, और बेवकूफ पर्ल का उल्लंघन करने के लिए माना जाता है। यदि आप कोई मान नहीं दे रहे हैं, तो for/foreach
का उपयोग करें। यदि आप एक मान वापस कर रहे हैं, तो last
उस प्रक्रिया को बाधित करता है।
यदि आप पर्ल के लिए सर्वोत्तम प्रथाओं का पालन कर रहे हैं, तो grep
और map
का उपयोग हमेशा एक मान लौटाएगा, जिसका अर्थ है कि last
का उपयोग करना चाहिए।
स्रोत
2012-04-27 21:12:11
नक्शा एक सूची को दूसरी सूची में बदल देता है, इसलिए प्रत्येक मानचित्र आमंत्रण को – perreal
तत्व को वापस लेना चाहिए। मुझे 'लूप ब्लॉक' के बाहर 'लापता ब्लॉक' के बाहर 'पिछला' के साथ 'पिछला' के साथ बाहर निकलने का प्रयास करने में त्रुटि नहीं हो सकती है। WinXP में 14.1। – TLP
@ टीएलपी: और यह मामला कम से कम पर्ल v5.10.1 के बाद से किया गया है। मुझे लगता है कि यह "नहीं होना चाहिए" भाषा पर्ल के कुछ पुराने संस्करण से होल्डओवर है जब यह कुछ अजीब व्यवहार का कारण बनता है। – ruakh