पर्ल में, एक बार, नियंत्रण ब्लॉकों का उपयोग कर से बचने कर सकते इस तरह:संक्षिप्त foreach अभिव्यक्ति
print "$_\n" foreach(@files);
के बजाय:
foreach(@files){
print "$_\n";
}
कैसे निम्नलिखित में इस वाक्य काम करता है और अधिक, जटिल मामला:
die("Not a file: $_") unless -f $_ foreach(@files);
यह मुझे एक वाक्यविन्यास त्रुटि देता है। मैं obfuscated कोड लिखने की कोशिश नहीं कर रहा हूँ, यह कार्यक्रम में सिर्फ एक महत्वहीन हिस्सा है, और इसलिए मैं इसे यथासंभव संक्षेप में व्यक्त करना चाहता हूं।
संक्षेप जवाब:
मैं स्वीकार किए जाते हैं जवाब के रूप में केवल एक ही जवाब स्वीकार कर सकते हैं, लेकिन मैं क्रिस और जॉन सबसे अच्छा से निम्नलिखित लोगों की तरह।
यह एक foreach
के रूप में मैं इरादा का उपयोग करता है, लेकिन syntax error
बिना:
-f or die "Not a file: $_" foreach @files;
और निम्न में से एक कम से कम के रूप में अच्छा है। मुझे पसंद है कि die
बयान की शुरुआत में है, क्योंकि है कि क्या पाठक का ध्यान आकर्षित निर्देशित किया जाना चाहिए की ओर:
die("Not a file: $_") for grep {!-f} @files;
मैं मानता हूं कि लाइन की शुरुआत में 'मर() 'सबसे अच्छा है, लेकिन चुटकी में, शॉर्ट-सर्किट तर्क मेरे लिए उतना ही पठनीय है। –
क्या आप बस गोल्फिंग कर रहे हैं? अन्यथा, इसे एक पंक्ति पर रखना क्यों महत्वपूर्ण है? –