वर्तमान में मैं अपने प्राथमिक पर्ल वितरण के रूप में Strawberry Perl का उपयोग करता हूं। हालांकि, मेरे पास कुछ एप्लिकेशन हैं जो पर्ल को साइगविन के माध्यम से कॉल करते हैं। ये आम तौर पर असफल होते हैं क्योंकि वे पर्ल के संस्करण को कॉल कर रहे हैं जिसे सिगविन के साथ पैक किया गया था, और केवल सिग्विन के lib फ़ोल्डर्स में दिख रहा था। स्ट्रॉबेरी पर्ल को कॉल करने के लिए मैं अपने साइविन पर्यावरण को कैसे संशोधित कर सकता हूं (और सी:/स्ट्रॉबेरी/पर्ल/lib dirs का उपयोग करें)?पैक किए गए पर्ल वितरण के बजाय स्ट्रॉबेरी पर्ल का उपयोग करने के लिए मैं अपने साइविन पर्यावरण को कैसे संशोधित कर सकता हूं?
उत्तर
यदि आप सेटअप प्रोग्राम का उपयोग कर सिग्विन से पर्ल को हटाते हैं तो यह डिफ़ॉल्ट रूप से स्ट्रॉबेरी पर्ल का उपयोग करेगा।
यदि आप सिग्विन से पर्ल को हटाने में असमर्थ हैं, तो आप स्ट्रॉबेरी से निष्पादन योग्य पर्ल के लिए एक प्रतीकात्मक लिंक बना सकते हैं।
एक cygwin खोल से, आदेशों के निम्नलिखित सेट का उपयोग करें:
$ mv /usr/bin/perl /usr/bin/perl-cygwin
$ ln -s /cygdrive/c/strawberry/perl/bin/perl.exe /usr/bin/perl
यह मानते हुए है आप डिफ़ॉल्ट स्ट्राबेरी पर्ल संस्थापक इस्तेमाल किया। तदनुसार अपने perl.exe
स्थान को अपडेट करें यदि आपने इसे कहीं और इंस्टॉल किया है। (या इसी तरह
$ perl -v
यह कहना चाहिए इस पर्ल, (संस्करण) है MSWin32-86-बहु धागा के लिए बनाया गया:
चेक यकीन है कि लिंक पर्ल संस्करण की जाँच करके ठीक से काम कर रहा है) और साइगविन-थ्रेड-बहु-64int के लिए बनाया गया है।
मेरे पास मेरी साइगविन मशीन पास नहीं है इसलिए मैं इसका परीक्षण नहीं कर सकता, लेकिन शायद आप एक स्क्रिप्ट के साथ पर्ल कमांड को आगे बढ़ा सकते हैं: साइगविन के नीचे/bin पर जाएं और perl.exe को वहां कुछ स्थानांतरित करें अन्यथा perl-org.exe की तरह, फिर एक शेल स्क्रिप्ट सेट करें जो आपके अन्य पर्ल को उसी तर्क के साथ निष्पादित करता है।
आप स्ट्रॉबेरी निर्देशिकाओं को पहले रखने के लिए अपना पाथ बदल सकते हैं। स्ट्रॉबेरी पाथ के अंत में अपनी निर्देशिका डालने से अच्छा होने की कोशिश करता है। यदि आपने .zip फ़ाइल से स्थापित किया है, हालांकि, उसने पैथ को बिल्कुल भी नहीं बदला है।
आप/usr/bin/perl को स्थानांतरित कर सकते हैं, लेकिन यह एक बुरा विचार है क्योंकि यह तब टूट जाता है जब सिगविन जो सोचता है उसे अपडेट करने का प्रयास करता है। मैंने अभी इस सप्ताह मेरे साथ ऐसा किया था और मेरे मैक पर तब तक मेरे साथ होता था जब तक कि मैंने सिस्टम सेटअप के साथ खेलना बंद नहीं किया और अपनी खुद की सामग्री पूरी तरह से अलग कर दी।
यह शायद एक पसंदीदा समाधान नहीं है, लेकिन आप # को संशोधित करने में सक्षम होना चाहिए! रेखा:
#!/cygdrive/c/strawberry/perl/bin/perl5.10.0
मैं हमेशा न कि जो/usr/bin में है पर भरोसा करने की बजाय, कोई स्पष्ट स्थान और पर्ल की स्थापना को देखें।
मैं दो स्क्रिप्ट है कि मैं पर्ल स्क्रिप्ट जो भी करने के लिए पर्ल मेरी राह में पहला है की पहली पंक्ति को संशोधित करने के लिए उपयोग किया है: पर्ल मेरी $ पथ में पहली है कि करने के लिए rightperl hardcodes अब, envperl करने के लिए लाइन बदल जाएगा #!/usr/bin/env perl तो उपयोग करने के लिए पर्ल केवल स्क्रिप्ट लागू होने पर ही उठाया जाता है। सिगविन के तहत वास्तव में अच्छी तरह से काम करता है (और सामान्य रूप से यूनिक्स खोल से)।
एक अच्छी चीज जो मैं जोड़ सकता हूं वह यह है कि यदि आपको पथ में पहली बार आने के लिए सही पर्ल मिलती है, तो उसे साइट-विशिष्ट सीपीएएन मॉड्यूल को संभालना चाहिए जो आपने सीएमडी खोल में चल रहे स्ट्रॉबेरी पर्ल के साथ स्थापित किया हो।
"कौन सा perl" आपका मित्र है।
यदि आपको इससे परेशानी है, तो आप PERL5LIB पर्यावरण चर सेट कर सकते हैं, लेकिन यह आवश्यक नहीं होना चाहिए।
मैं अभी भी डीओएस-स्टाइल फ़ाइल पथ में पर्ल स्क्रिप्ट में पैरामीटर के रूप में पास करता हूं, यानी "डी: \ डेटा \ myfile.txt", "/cygdrive/d/data/myfile.txt" नहीं। तो अजीब तरह से पर्याप्त, पथ अंकन के इस मिश्रण काम करता है:
बैश> /cygdrive/d/scripts/myscript.pl घ: \ डेटा \ myfile.txt
आप नहीं गड़बड़ करने के लिए चारों ओर से किसी के साथ चाहते हैं पथ या स्थायी कुछ भी एक आसान टेम्पलेटरी हैक है। सिगविन शॉर्ट प्रॉम्प्ट पर "जहां perl" टाइप करें। यह निष्पादन के क्रम में पाथ में देखे गए सभी Perl.exe को सूचीबद्ध करेगा। उन लोगों के नाम बदलें जिन्हें आप देखना नहीं चाहते हैं जो उस पर्ल से पहले सूचीबद्ध हो जाएं जिसका आप उपयोग करना चाहते हैं। लेकिन जब आप काम करते हैं तो उन्हें वापस बदलना याद रखें या आपको सड़क के नीचे कुछ समस्याएं हो सकती हैं।
इनमें से कई अच्छे समाधान हैं, लेकिन मैं एक आसान विकल्प लेता हूं जिसे मुझे एक से अधिक बार संशोधित करने की आवश्यकता नहीं है।
आपको बस अपनी .bashrc फ़ाइल में एक पंक्ति जोड़ने/संशोधित करने की आवश्यकता है।
# Prepend strawberry perl to cygwin's path
export PATH=/cygdrive/C/Tools/Perl/perl/bin:$PATH
स्रोत अपने खोल से .bashrc फ़ाइल, (या एक नया खोल शुरू) और अपने कार्यक्रम चलाते हैं।
source ~/.bashrc
perl script.pl
यह सही प्रथाओं का सही उत्तर है; ओ), लेकिन कुछ लोगों को यह महसूस करने में कुछ साल लगेंगे ...; ओ) –
- 1. मैं स्ट्रॉबेरी पर्ल के साथ प्रोग्राम कैसे चला सकता हूं?
- 2. क्या मैं एक कंप्यूटर में स्ट्रॉबेरी पर्ल और एक्टिवस्टेट पर्ल का उपयोग कर सकता हूं?
- 3. मैं स्ट्रॉबेरी पर्ल के सीपीए (1) को पर्ल कैसे ढूंढ सकता हूं?
- 4. वेनिला पर्ल और स्ट्रॉबेरी पर्ल के बीच अंतर क्या हैं?
- 5. मैं अपने पर्ल सीजीआई प्रोग्राम को कैसे बना सकता हूं?
- 6. पर्ल पैक ('वी') फ़ंक्शन?
- 7. पर्ल में, फ़ाइल के बजाय मैं एक चर के लिए कैसे मुद्रित कर सकता हूं?
- 8. मैं अनुमति अनुमतियों के बिना एक नया पर्ल मॉड्यूल का उपयोग कैसे कर सकता हूं?
- 9. मैं विंडोज 8 पर पर्ल कैसे स्थापित कर सकता हूं?
- 10. मैं अपने पर्ल स्क्रिप्ट को निष्पादित करने वाले उपयोगकर्ता का नाम कैसे प्राप्त कर सकता हूं?
- 11. मैं पर्ल मॉड्यूल को अनलोड कैसे कर सकता हूं?
- 12. मैं अपने पर्ल एप्लिकेशन को एक फ़ाइल के रूप में कैसे वितरित कर सकता हूं?
- 13. क्या मैं अपने सिस्टम पर केवल पर्ल डीएल के साथ विम में पर्ल का उपयोग कर सकता हूं?
- 14. मैं पर्ल मॉड्यूल निर्भरताओं का प्रबंधन कैसे कर सकता हूं?
- 15. क्या मैं अपने पर्यावरण चर पर भरोसा कर सकता हूं?
- 16. पर्ल प्रोग्रामिंग और वितरण
- 17. मैं पर्ल के साथ स्क्रैप कैसे स्क्रीन कर सकता हूं?
- 18. पर्ल में, मैं एक regex से मिलान किए गए सबस्ट्रिंग कैसे प्राप्त कर सकता हूं?
- 19. मैं CGI स्क्रिप्ट के लिए मॉड्यूल के लिए पर्ल के समावेशन पथ को कैसे सेट कर सकता हूं?
- 20. मैं पर्ल 6 के साथ कैसे शुरू कर सकता हूं?
- 21. मैं पर्ल में सेट का प्रतिनिधित्व कैसे कर सकता हूं?
- 22. मैं पर्ल में 64-बिट अंकगणित कैसे कर सकता हूं?
- 23. पर्ल में सबराउटिन के लिए तर्क के रूप में हैश का उपयोग कैसे कर सकता हूं?
- 24. मैं दो इंडेक्स के बीच सरणी तत्वों को संयोजित करने के लिए पर्ल का उपयोग कैसे कर सकता हूं?
- 25. मैं थोक खोज कैसे कर सकता हूं और पर्ल के साथ प्रतिस्थापित कैसे कर सकता हूं?
- 26. मैं अपने बैश लूप वैरिएबल को पर्ल दुभाषिया में कैसे पास कर सकता हूं?
- 27. पर्ल: मैं एआरएक्स को पर्ल स्क्रिप्ट के पूर्ण पथ में उद्धरण जोड़ने के लिए कैसे प्राप्त कर सकता हूं?
- 28. मैं पर्ल में तिथियों को कैसे सत्यापित कर सकता हूं?
- 29. मैं सी ++ एप्लिकेशन के अंदर पर्ल को कैसे एम्बेड कर सकता हूं?
- 30. पर्ल के बिना मशीन पर चलाने के लिए मैं अपनी पर्ल स्क्रिप्ट को कैसे पैकेज कर सकता हूं?
एक आकर्षण की तरह काम किया! धन्यवाद! –
अच्छा ... बहुत उपयोगी .. धन्यवाद। – Paul