जब निम्न कोड के दुष्प्रभाव हो सकते हैं?
@some = map { s/xxx/y/; $_ } @some;
perlcritic, यह के रूप में खतरनाक बताते हैं क्योंकि उदाहरण के लिए:
@other = map { s/xxx/y/; $_ } @some;
और @some
के सदस्यों भी संशोधित मिला है। समझना। मैं BPB किताब है, और यह उदाहरण
@pm_files_without_pl_files
= grep { s/.pm\z/.pl/xms && !-e } @pm_files;
और यह भी मैं अध्याय "सूची प्रसंस्करण साइड इफेक्ट्स" पढ़ा/के साथ ऊपर से पता चलता "कभी एक सूची समारोह में $ _ संशोधित करते हैं।" और उसके अनुयायियों। इसके अलावा मुझे /r
पता है।
स्पष्ट है (के रूप में ज्यादा मेरी भयानक अंग्रेजी के साथ संभव है):
1 उदाहरण में मुख्य बिंदु मूल @some
को संशोधित किया गया है।
- सकता है 1 उदाहरण
@some = map { s/xxx/y/; $_ } @some;
कुछ अवांछित दुष्प्रभाव के कारण:प्रश्न के बारे में है? यदि हां, तो कब?
- या यह सिर्फ "अनुमोदित नहीं" तरीका है (लेकिन हानिरहित अन्यथा)?
कुछ "perl beginner की पुस्तक" के रूप में थोड़ा गहराई से उत्तर देने के लिए एक उत्तर खोज रहे हैं - इसलिए अभी भी कोई भी वर्तमान उत्तर स्वीकार नहीं किया गया है। ;)
गैर विनाशकारी 'r' संशोधक जोड़ने का प्रयास करें:' मानचित्र {s/xxx/y/आर} 'पर्ल 5.13.2 से उपलब्ध है, देखें http://www.effectiveperlprogramming.com/2010/12/perl-5-14-adds-non-destructive-transliteration/ –
आलोचक के लिए पृष्ठभूमि अध्याय 5 में वर्णित है [पुस्तक] (http://shop.oreilly.com/product/9780596001735.do) –
@ हाकॉनहेग्लैंड - मेरे पास किताब है, और इसे भी पढ़ा गया है ... प्रश्न को संपादित करने के लिए (मुझे उम्मीद है) और अधिक स्पष्ट। – cajwine