जवाबों:
आप एक तुच्छ कार्यक्रम पर पर्ल डिबगर का उपयोग कर सकते हैं, जैसे:
perl -de1
वैकल्पिक रूप से एलेक्सिस सुक्रिह का पर्ल कंसोल एप्लिकेशन है, लेकिन मैंने इसका उपयोग नहीं किया है।
control
+ L
इस कमांड इंटरफ़ेस के तहत काम नहीं करता है, मुझे स्क्रीन को कैसे रिफ्रेश करना चाहिए?
rlwrap
)। सभी तृतीय-पक्ष REPL / कंसोल समाधान, सहित perlconsole
, स्थापित करने के लिए बोझिल हैं और अक्सर अधिक सीमाएं होती हैं।
perl -de1
का समर्थन करने के लिए प्रतीत नहीं होता है my
, और हैश या तो काम नहीं करते हैं, किसी कारण के लिए ...
perlconsole
इन समस्याओं से ग्रस्त नहीं है।
न केवल मैट ट्राउट ने एक REPL के बारे में एक लेख लिखा था, उन्होंने वास्तव में एक - Devel :: REPL लिखा था
मैंने इसका थोड़ा उपयोग किया है और यह काफी अच्छी तरह से काम करता है, और यह सक्रिय विकास के तहत है।
BTW, मुझे नहीं पता कि किसी ने उस व्यक्ति को नीचे क्यों लगाया, जिसने कंसोल से "पर्ल-ई" का उपयोग करने का उल्लेख किया था। यह वास्तव में एक REPL नहीं है, सच है, लेकिन यह काल्पनिक रूप से उपयोगी है, और मैं इसका हर समय उपयोग करता हूं।
[sudo] cpan Devel::REPL
मेरे लिए काम नहीं आया, न तो OSX १०.१० (पर्ल 5.18.2) पर और न ही उबंटू १४.०४ पर (पर्ल 5.18.2): मुझे रनटाइम त्रुटियाँ गुम मॉड्यूल की शिकायत है; एक स्थापित किया गया, फिर एक और लापता मॉड्यूल की सूचना दिए जाने के बाद छोड़ दिया गया।
re.pl
लेखक, ने कई विकल्पों को सूचीबद्ध करने वाला एक लेख लिखा था, और वह स्वयं reply
इसके बजाय का उपयोग करने का सुझाव देता है re.pl
: शैडो.कैट
मैंने एक स्क्रिप्ट लिखी जिसे मैं "psh" कहता हूं:
#! /usr/bin/perl
while (<>) {
chomp;
my $result = eval;
print "$_ = $result\n";
}
आप जो भी टाइप करते हैं, वह पर्ल में मूल्यांकन करता है:
> gmtime(2**30)
gmtime(2**30) = Sat Jan 10 13:37:04 2004
> $x = 'foo'
$x = 'foo' = foo
> $x =~ s/o/a/g
$x =~ s/o/a/g = 2
> $x
$x = faa
यदि आप इतिहास चाहते हैं, तो rlwrap का उपयोग करें । यह आपके ~/bin/ips
उदाहरण के लिए हो सकता है :
#!/bin/sh
echo 'This is Interactive Perl shell'
rlwrap -A -pgreen -S"perl> " perl -wnE'say eval()//$@'
और यह इस तरह दिखता है:
$ ips
This is Interactive Perl shell
perl> 2**128
3.40282366920938e+38
perl>
alias iperl='rlwrap -A -S "perl> " perl -wnE '\''say eval()//$@'\'
:। OSX उपयोगकर्ताओं स्थापित कर सकते हैं rlwrap
के माध्यम से Homebrew के साथ brew install rlwrap
।
rlwrap -A -pgreen -S'perl> ' perl -MData::Dumper -wnE'say Dumper[eval()]//$@'
मुझे लगता है कि आप एक REPL (पढ़ें, मूल्यांकन, प्रिंट, लूप) इंटरफ़ेस के बारे में पूछ रहे हैं। ऐसा करने के कुछ तरीके हैं:
मैं कमांड लाइन को कंसोल की तरह उपयोग करता हूं:
$ perl -e 'print "JAPH\n"'
फिर मैं अपने बैश इतिहास का उपयोग पुरानी आज्ञाओं को वापस पाने के लिए कर सकता हूं । हालांकि, यह राज्य को संरक्षित नहीं करता है।
यह फॉर्म सबसे उपयोगी है जब आप "एक छोटी सी बात" का परीक्षण करना चाहते हैं (जैसे कि पर्ल प्रश्नों का उत्तर देना)। अक्सर, मुझे लगता है कि इन कमांडों को शेल स्क्रिप्ट या मेकफाइल में कटा हुआ शब्दशः मिलता है।
fish
, आपको इसकी आवश्यकता भी नहीं है \n
।
पायल के लिए बनाए गए पर्ल के लिए इंटरेक्टिव कंसोल नहीं है। हालाँकि आप संबंधित डीबगिंग करने के लिए पर्ल डीबगर का उपयोग कर सकते हैं। आप इसे -d विकल्प के साथ चालू करते हैं, लेकिन आप इसके बारे में जानने के लिए 'man perldebug' की जांच कर सकते हैं।
थोड़ा गुगली करने के बाद, एक अलग प्रोजेक्ट है जो एक पर्ल कंसोल को लागू करता है जिसे आप पा सकते हैं http://www.sukria.net/perlconsole.html ।
उम्मीद है की यह मदद करेगा!
आप हमेशा बिल्ट-इन डीबगर में छोड़ सकते हैं और वहां से कमांड चला सकते हैं।
perl -d -e 1
दो लोकप्रिय पर्ल आरईपीएल हैं।
sudo apt-get install libreply-perl
:। फिर इसे reply
एक टर्मिनल में टाइप करके चलाया जा सकता है ।
मैंने perli
एक पर्ल REPL बनाया है , जो Linux, macOS और Windows पर चलता है ।
इसका फोकस ऑटोमैटिक रिजल्ट प्रिंटिंग, सुविधाजनक डॉक्यूमेंटेशन लुक्स और रेगुलर-एक्सप्रेशन मैचों का आसान निरीक्षण है।
आप यहां स्क्रीनशॉट देख सकते हैं ।
यह स्टैंड-अलोन ( अकेले पर्ल के अलावा कोई अन्य निर्भरता नहीं है) काम करता है, लेकिन स्थापना की rlwrap
दृढ़ता से अनुशंसा की जाती है ताकि कमांड लाइन संपादन, लगातार कमांड इतिहास और टैब-पूरा करने का समर्थन किया जा सके - यहां और पढ़ें ।
स्थापना
यदि आपके पास Node.js स्थापित है:
npm install -g perli
अन्यथा:
यूनिक्स -जैसे प्लेटफॉर्म: इस स्क्रिप्ट को perli
अपने सिस्टम के पथ के फ़ोल्डर के रूप में डाउनलोड करें और इसके साथ निष्पादन योग्य बनाएं chmod +x
।
विंडोज : इस स्क्रिप्ट को अपने सिस्टम के पथ के एक फ़ोल्डर में perli.pl
( .pl
विस्तार पर ध्यान दें ) के रूप में डाउनलोड करें ।
अगर आपको पेरली का आह्वान करने में कोई आपत्ति नहीं है perli.pl
, तो आप बिल्कुल तैयार हैं।
अन्यथा, perli.cmd
निम्न सामग्री के साथ एक ही फ़ोल्डर में नामित बैच फ़ाइल बनाएं @%~dpn.pl %*
:; यह बस के रूप में मंगलाचरण सक्षम बनाता है perli
।
perldoc
से perli
आरईपीएल की तरह 'someCommand ?'
। ऐसा लगता है कि इसे कुछ समय के लिए अपडेट नहीं किया गया है, लेकिन क्या आप अभी भी पेरली बनाए हुए हैं?
perli
थोड़ी देर में अपडेट नहीं किया गया है, क्योंकि मेरे व्यक्तिगत उपयोग में मैं किसी भी मुद्दे पर नहीं आया हूं, और कुछ अन्य लोग इसका उपयोग करते हैं, लेकिन, जहां तक मुझे पता है, यह अभी भी विज्ञापित के रूप में काम करता है।
perl -d
आपका दोस्त है:
% perl -de 0
Devel से re.pl :: REPL
पढ़ें- eval- प्रिंट लूप:
$ perl -e'while(<>){print eval,"\n"}'
पर्ल में कंसोल नहीं है लेकिन डीबगर को एक के रूप में इस्तेमाल किया जा सकता है। कमांड प्रॉम्प्ट पर, टाइप करें perl -de 1
। (मूल्य "1" कोई फर्क नहीं पड़ता, यह सिर्फ एक वैध कथन है जो कुछ भी नहीं करता है।)
पर्ल शेल के लिए कुछ विकल्प भी हैं ।
अधिक जानकारी के लिए perlfaq3 पढ़ें ।
आप यहाँ psh में देख सकते हैं: http://gnp.github.io/psh/
यह शेल पर एक पूर्ण है (आप उदाहरण के लिए बैश के प्रतिस्थापन में इसका उपयोग कर सकते हैं), लेकिन पर्ल सिंटैक्स का उपयोग करता है .. इसलिए आप मक्खी आदि पर तरीके बना सकते हैं।
मैट ट्राउट का सिंहावलोकन सूचियों पांच विकल्प, से perl -de 0
के बाद, और वह सिफारिश की गई है Reply
, अगर प्लगइन्स के माध्यम से तानाना महत्वपूर्ण है, या tinyrepl
से Eval::WithLexicals
एक न्यूनतम, शुद्ध पर्ल समाधान है कि ReadLine समर्थन और शाब्दिक हठ शामिल के लिए,।
अद्यतन: जब से मैंने एक डाउनलोड करने योग्य REPL बनाया है - मेरा दूसरा जवाब देखें ।
दृष्टि के लाभ के साथ:
rlwrap
, जो किसी भी कमांड को रीडलाइन सपोर्ट प्रदान करता है, तो आप इसे यूपीएल बनाने के लिए एक साधारण पर्ल कमांड के साथ जोड़ सकते हैं , और इस तरह से तृतीय-पक्ष आरईपीएल समाधान के बिना कर सकते हैं।
rlwrap
के माध्यम से Homebrew के साथ brew install rlwrap
।rlwrap
अपने संबंधित पैकेज प्रबंधकों के माध्यम से पेश करना चाहिए ; उदाहरण के लिए, उबंटू पर, उपयोग करें sudo apt-get install rlwrap
।rlwrap
।आपको JAN के जवाब के साथ क्या नहीं मिलेगा :
एकमात्र तृतीय-पक्ष समाधान जो इन्हें प्रदान करता है (गैर-तुच्छ स्थापना + अतिरिक्त, गैर-स्पष्ट चरणों के साथ), psh है , लेकिन:
इसने लगभग 2.5 वर्षों में गतिविधि नहीं देखी है
अपना ध्यान केंद्रित में है कि यह एक पूर्ण बनना है अलग है खोल प्रतिस्थापन , और इस तरह एक पारंपरिक खोल, जिसका अर्थ है कि यह स्वचालित रूप से एक के रूप में एक आदेश का मूल्यांकन नहीं करता है की तरह काम करता पर्ल बयान है, और इस तरह के रूप में कोई स्पष्ट उत्पादन आदेश की आवश्यकता print
के लिए एक अभिव्यक्ति का परिणाम प्रिंट करें।
JAN Sáreník के उत्तर को एक तरह से बेहतर बनाया जा सकता है:
यदि आप Data::Printer
मॉड्यूल [sudo] cpan Data::Printer
को एक बार के संचालन के रूप में स्थापित करते हैं , तो आप इसे फ़ंक्शन के उपयोग के लिए REPL में लोड कर सकते हैं p()
, जिसके लिए आप गणना के लिए सूचियाँ / सरणियाँ / हैशटेबल्स पास कर सकते हैं।
यहां रीडलाइन और सपोर्ट के साथ एक उपनाम दिया गया हैiperl
Data::Printer
, जिसे आप अपनी POSIX- जैसे शेल के इनिशियलाइज़ेशन फ़ाइल (जैसे ~/.bashrc
) में डाल सकते हैं :
alias iperl='rlwrap -A -S "iperl> " perl -MData::Printer -wnE '\''BEGIN { say "# Use `p @<arrayOrList>` or `p %<hashTable>` to print arrays/lists/hashtables; e.g.: `p %ENV`"; } say eval()//$@'\'
उदाहरण के लिए, आप हैशटेबल के माध्यम से सभी पर्यावरण चर प्रिंट करने के लिए निम्न कार्य कर सकते हैं %ENV
:
$ iperl # start the REPL
iperl> p %ENV # print key-value pairs in hashtable %ENV
जेएएन के जवाब के साथ, एक अभिव्यक्ति का स्केलर परिणाम स्वचालित रूप से मुद्रित होता है; उदाहरण के लिए:
iperl> 22 / 7 # automatically print scalar result of expression: 3.14285714285714
CPAN पर ptkdb के लिए भी देखें: http://search.cpan.org/search?query=ptkdb&ode/all
सीपिया और पीडीई के पास खुद की आरईपीएल (जीएनयू एमएसीएस के लिए) भी हैं।
स्टाइलिश REPL (GNU Emacs के लिए) http://blog.jrock.us/articles/Stylish%20REPL.pod भी देखें
आप इसे ऑनलाइन (जीवन की कई चीजों की तरह) यहां कर सकते हैं:
$ rlwrap perl -d -e 1
आप इतिहास और एक सुसंगत शीघ्र मिलेगा