मैं किसी ऐसे व्यक्ति की तलाश कर रहा हूं जो मुझे लगता है कि मुझे लगता है कि मुझे पर्ल स्क्रिप्ट की शेबांग लाइन पर -CSDA
विकल्प के बारे में पता है।क्या अच्छा है -एससीडीए केवल शेबांग लाइन पर निर्दिष्ट है?
-CSDA
के प्रलेखन के लिए perldoc perlrun देखें। संक्षेप में
- एस: दोनों इनपुट और आउटपुट के लिए डिफ़ॉल्ट PerlIO परत धाराओं UTF-8 है
- एक::
STDIN
,STDOUT
औरSTDERR
UTF-8- डी में माना जाता है @ARGV तत्वों तार में एन्कोड करने की उम्मीद कर रहे हैं UTF-8
-CSDA
के लिए कोई प्रभाव नहीं है, इसे कमांड लाइन परperl -CSDA script.pl
पर निर्दिष्ट किया जाना चाहिए।5.10,
-CSDA
कुटिया लाइन चुपचाप विफल हो जाएगा क्योंकि मानक धाराओं पहले से ही खोल दिया गया है | और@ARGV
पहले से ही समय है जब तक कि-CSDA
पहले से ही कमांड लाइन पर निर्दिष्ट किया गया था और साथ ही यह सामना करना पड़ा था की आबादी पर करने से पहले।5,10 के बाद,
-CSDA
जो केवल कुटिया लाइन पर प्रतीत होता है कि समस्या के कारण croak कोperl
कारण बनता है।उस के साथ काम करता था
-CSDA
साथ एक स्क्रिप्टperl
रों पूर्व 5.10-CSDA
कुटिया लाइन से हटा दिया है क्योंकि यह कमांड लाइन पर उन विकल्पों (और विकल्पों के साथ लागू नहीं किया गया था, अगर पर पूरी तरह निर्दिष्ट होना चाहिए शेबांग लाइन, कुछ नहीं किया)।
मुझे कुछ ठोस प्रतिक्रियाएं मिलेंगी कि उपरोक्त मेरी धारणाएं गलत हैं।
+1। आखिरी वस्तु के लिए, सिस्टम पर जहां/usr/bin/perl' दुभाषिया नहीं है लेकिन यह एक ऐसा प्रोग्राम है जो 'perl' के किस संस्करण को आमंत्रित करने का निर्णय लेता है (कहें, ओएस एक्स सिस्टम पर जहां '5.8' और' 5.10' सह-अस्तित्व में), शेबैंग लाइन पर '-CSDA'' को अंततः लागू होने पर 'perl' को क्रोक करने का कारण बनता है। –
यह सच था, यह रैपर स्क्रिप्ट में एक बग होगा। लेकिन जब मैंने इसे मैक पर चेक किया, तो मुझे पता चला कि समस्या वास्तव में है कि 5.10.0 (जो ओएस एक्स 10.6.6 के साथ आता है) -सी हमेशा, जबकि 5.10.1 (जो मेरे लिनक्स मशीन पर है) अगर निर्दिष्ट झंडे पहले से सक्रिय हैं तो इसे अनुमति देता है। शेबैंग पर perl5.8.9 निर्दिष्ट करना सम्मान -CSDA सही ढंग से करता है। – Anomie
स्पष्टीकरण के लिए धन्यवाद। बहुत सराहना की। –