2016-10-06 12 views
6

के अंदर पर्ल स्क्रिप्ट निष्पादित करना मैं perl script पर काम करने के लिए इंटेलिजे आइडिया का उपयोग करने की कोशिश कर रहा हूं। मैंने IDEA के लिए perl plugin और विंडोज़ (10) के लिए Strawberry Perl स्थापित किया।इंटेलिजे आइडिया

वाक्य रचना हाइलाइटिंग और अन्य सुविधाओं के काम करते हैं, लेकिन यह जब मैं कार्यक्रम चलाने का प्रयास होता है:

Running the Program

मैं पर्ल में अभी शुरुआत कर रहा हूँ, इसलिए मैं अभी भी सिर्फ आदेश का उपयोग कर रहा हूँ लाइन सामान और ASCII ग्राफिक्स। मैं इंटेलिजे में अपने पर्ल प्रोग्राम्स को चलाने, परीक्षण करने और डीबग करने की उम्मीद कर रहा था, लेकिन print कथन इस संवाद में कुछ भी नहीं डाल रहा है जब पेर्ल रन ...

मैं अभी भी उपरोक्त छवि में सामान टाइप कर सकता हूं जहां कर्सर है, और गलत सामान टाइप करना त्रुटियों को फेंक सकता है जैसा कि यह माना जाता है। तो <STDIN> ठीक से मैप किया गया प्रतीत होता है, लेकिन <STDOUT> नहीं है? या कुछ और गलत है?

मैं आदेश है कि यह पता चलता है कि यह cmd के लिए चल रहा है नकल है, यह पूरी तरह से काम करता है:

Mancala working

तो वहाँ IntelliJ कॉन्फ़िगर करने के लिए इस संवाद में <STDOUT> पाने के लिए एक तरीका है? किसी भी सहायता की सराहना की जाएगी।


अब, Chankey के जवाब के बाद, मैं एक परीक्षण स्क्रिप्ट कर दिया है, और है कि एक काम करता है:

Test.pl working

हो सकता है कि समस्या यह है कि मैं एक बाहरी स्रोत से पर्ल फ़ाइल आयात है, और इंटेलिजे को यह एहसास नहीं है कि यह एक स्क्रिप्ट है, या ऐसा कुछ है? लेकिन अगर मैं नई फाइल में कोड कॉपी करता हूं, तो यह काम नहीं करता है ...

test.pl में एक अंतर था: use warnings; के बजाय। जब मैं यह कोशिश, यह काम करता है जब तक मैं एक स्ट्रिंग जहां संख्यात्मक इनपुट की उम्मीद है लिखें और फिर की एक पूरी गुच्छा प्रिंट क्या यह जाना चाहिए था के रूप में यह कार्यक्रम इस्तीफा साथ सभी मुद्रण किया गया:

Some of the output shown now

फिर से, आउटपुट cmd में ठीक काम करता है, इसलिए मुझे लगता है कि यह इंटेलिजे के साथ एक मुद्दा है। कोई विचार? शायद @ प्रतीक मुद्दे बना रहे हैं? कुछ और? अगर कोई विंडोज़ के लिए आईडीईए का उपयोग करता है और मेरे कोड के साथ खिलौना चाहता है, तो यह github पर उपलब्ध है।

+0

'प्रिंट" सामान "', सही STDOUT करने के लिए जाता है? – Menasheh

+0

प्रिंट का सामान्य वाक्यविन्यास 'प्रिंट फ़ाइल सूची' प्रिंट है। अगर FILEHANDLE छोड़ा गया है, तो यह अंतिम चयनित (देखें चुनें) आउटपुट हैंडल पर प्रिंट करता है। इसलिए जब तक आप 'select' का उपयोग करके FILEHANDLE को बदल नहीं लेते हैं, तो यह डिफ़ॉल्ट FILEHANDLE को प्रिंट करेगा जो STDOUT है। –

उत्तर

1

मेरे लिए ठीक काम करता है।नीचे दिए गए चरणों हैं:

  1. एक परियोजना
  2. सही परियोजना पर क्लिक करें और New चयन बनाएं, फिर चुनें Perl5 file
  3. फ़ाइल और ड्रॉप-डाउन
  4. से Script चयन करने के लिए अपनी स्क्रिप्ट लिखने को कोई नाम दें, इसे सहेजें
  5. प्रेस CTRL+SHIFT+F10
  6. के रूप में उपयोगकर्ता इनपुट उसके बाद Enter
  7. कुछ डेटा प्रदान करें

आउटपुट:

enter image description here

यह अभी भी तो आप के लिए काम नहीं करता है शायद आप ठीक से सेट अपने पर्ल नहीं किया है।

File->Project Structure पर जाएं और Project SDK पर पेर्ल जोड़ें।

enter image description here

अपने स्क्रीनशॉट के अनुसार मुझे लगता है कि आप perl.exe के लिए absolute path उपयोग कर रहे हैं देख सकते हैं। इसका मतलब है कि आपने perl को अपने PATH में नहीं जोड़ा है। ऐसा लगता है कि इंटेलिजे को आपकी स्क्रिप्ट निष्पादित करने के लिए क्यों नहीं मिल रहा है।

set PATH=C:\Strawberry\perl\bin;%PATH% 

है, तो वह भी इस मुद्दे को ठीक नहीं है कि आप तो wiki page of Camelcade plugin के माध्यम से जाने के लिए। लेखक ने इस प्लगइन को सेटअप करने के तरीके पर चरण-दर-चरण निर्देश दिए हैं।

+0

क्या कोई तरीका है कि मैं स्ट्रॉबेरी पर्ल के बजाय सिगविन का उपयोग कर सकता हूं ?? – AbhiNickz

+0

आप पर्ल के लिए पूर्ण पथ का भी उपयोग कर रहे हैं, लेकिन आप लिनक्स पर हैं, इसलिए आप स्ट्रॉबेरी पर्ल का उपयोग नहीं कर रहे हैं, इसलिए आप संभवतः प्रश्न का सही उत्तर नहीं दे सकते। मैं खिड़कियों पर हूं, अगर यह स्पष्ट नहीं था। आप PATH = C: \ Strawberry \ perl \ bin;% PATH% 'कहां सेट करते हैं? – Menasheh

+2

@abhinickz intellij में? शायद आपको खुद से उस सवाल से अलग पूछना चाहिए? – Menasheh

0

जोड़ने का प्रयास करें:

$| = 1; 

... अपनी स्क्रिप्ट के शीर्ष करने के लिए। पर्ल बफर stdout, $| = 1; जोड़कर बफर तुरंत फ्लश करने का कारण बनता है और IntelliJ डीबग कंसोल में आपके print कथन से आउटपुट प्रदर्शित करना चाहिए।

यह भी देखें:

perl $|=1; What is this?

संबंधित मुद्दे