पर्ल में, आप इस तरह एक पाश है, तो:पर्ल में, क्या फ़ोरैच लूप के बजाय शून्य संदर्भ में मानचित्र का उपयोग करना उचित है?
foreach (@items) {
perform_action($_);
}
आप शून्य संदर्भ में map
के लिए एक कॉल के साथ बदलना कर सकते हैं:
map {
perform_action($_)
} @items;
वहाँ करने के लिए कर रही है के लिए किसी भी लाभ या नुकसान कर रहे हैं? क्या इसका प्रदर्शन प्रभाव पड़ता है क्योंकि पर्ल सोचता है कि इसे परिणामों को सहेजना है? क्या यह पठनीयता में सुधार/खराब है?
जबकि मानचित्र विवरण स्वयं इसके संदर्भ से अवगत हो सकता है, प्रोग्रामर शायद नहीं। 'Sub foo {map {...} @_} जैसी संरचनाओं से 'यह कहना आसान नहीं है कि वास्तव में क्या होगा और यदि आप अपने कार्यान्वयन के कुछ हिस्सों को लीक कर रहे हैं, तो आप जो करना चाहते थे वह मानचित्र के रूप में दुरुपयोग करना था के लिए नियमित – rafl
perldoc यह भी कहता है कि फ़ोरैच लूप स्पष्ट है तो नक्शा: "ध्यान दें कि $ _ सूची मूल्य के लिए उपनाम है, इसलिए इसका उपयोग LIST के तत्वों को संशोधित करने के लिए किया जा सकता है। हालांकि यह उपयोगी और समर्थित है, यह विचित्र परिणाम दे सकता है यदि सूची के तत्व चर नहीं हैं। इस उद्देश्य के लिए एक नियमित foreach पाश का उपयोग ज्यादातर मामलों में स्पष्ट होगा। " – jira