উত্তর:
আপনি তুচ্ছ প্রোগ্রামে পার্ল ডিবাগারটি ব্যবহার করতে পারেন:
perl -de1
বিকল্পভাবে অ্যালেক্সিস সুক্রিহের পার্ল কনসোল অ্যাপ্লিকেশন রয়েছে, তবে আমি এটি ব্যবহার করি নি।
control+ Lএই কমান্ড ইন্টারফেসের অধীনে কাজ করে না, আমি কীভাবে স্ক্রিনটি রিফ্রেশ করব?
rlwrap)। সমস্ত তৃতীয় পক্ষের REPL / কনসোল সমাধানগুলি সহ perlconsoleইনস্টল করা জটিল and এবং প্রায়শই আরও সীমাবদ্ধতা থাকে।
perl -de1সমর্থন করে না বলে মনে হয় myএবং হ্যাশগুলি কোনও কারণে কার্যকর হয় না ...
perlconsoleএই সমস্যাগুলিতে ভোগেন না
ম্যাট ট্রাউট কেবল একটি আরইপিএল সম্পর্কে একটি নিবন্ধ লিখেনি, তিনি আসলে একটি লিখেছিলেন - দেভেল :: আরপিএল
আমি এটি কিছুটা ব্যবহার করেছি এবং এটি মোটামুটি ভালভাবে কাজ করে, এবং এটি সক্রিয় বিকাশের অধীনে।
বিটিডাব্লু, কনসোল থেকে যে কেউ "পার্ল-ই" ব্যবহার করার কথা উল্লেখ করেছে তাকে কেউ কেন মডেড করেছে তা আমার ধারণা নেই। এটি সত্যই সত্যই নয়, তবে এটি দুর্দান্তভাবে কার্যকর এবং আমি এটি সর্বদা ব্যবহার করি।
[sudo] cpan Devel::REPLআমার পক্ষে কার্যকর হয়নি, না OSX 10.10 (পার্ল 5.18.2) বা উবুন্টু 14.04 (পার্ল 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()//$@'\'। ওএসএক্স ব্যবহারকারীরা এর সাথে হোমব্রিউয়েরrlwrap মাধ্যমে ইনস্টল করতে পারবেন । brew install rlwrap
rlwrap -A -pgreen -S'perl> ' perl -MData::Dumper -wnE'say Dumper[eval()]//$@'
আমি মনে করি আপনি পার্ল করার জন্য একটি REPL (পড়ুন, মূল্যায়ন, মুদ্রণ, লুপ) ইন্টারফেস সম্পর্কে জিজ্ঞাসা করছেন। এটি করার কয়েকটি উপায় রয়েছে:
আমি কনসোল হিসাবে কমান্ড লাইনটি ব্যবহার করি:
$ perl -e 'print "JAPH\n"'
তারপরে আমি পুরানো কমান্ডগুলি ফিরে পেতে আমার বাশ ইতিহাস ব্যবহার করতে পারি । তবে এটি রাষ্ট্র সংরক্ষণ করে না।
আপনি যখন "একটি ছোট জিনিস" পরীক্ষা করতে চান (যেমন পার্ল প্রশ্নের উত্তর দেওয়ার সময়) তখন এই ফর্মটি সবচেয়ে কার্যকর। প্রায়শই, আমি এই কমান্ডগুলি শেল স্ক্রিপ্ট বা মেকফাইলে স্ক্র্যাপড ভারব্যাটিয়াম পেয়েছি get
fishআপনার এমনকি প্রয়োজনও হয় না \n।
পাইথনের মতো নির্মিত পার্লের জন্য ইন্টারেক্টিভ কনসোল নেই। আপনি তবে ডিবাগিং সম্পর্কিত জিনিসগুলি করতে পার্ল ডিবাগারটি ব্যবহার করতে পারেন। আপনি এটি -d বিকল্পের সাহায্যে চালু করুন, তবে আপনি এটি সম্পর্কে জানতে 'ম্যান পার্ল্ডেবাগ' পরীক্ষা করে দেখতে চাইতে পারেন।
কিছুটা গুগল করার পরে, একটি পৃথক প্রকল্প রয়েছে যা পার্ল কনসোল প্রয়োগ করে যা আপনি এটি পেতে পারেন http://www.sukria.net/perlconsole.html ।
আশাকরি এটা সাহায্য করবে!
আপনি সর্বদা বিল্ট-ইন ডিবাগারে ফেলে যেতে পারেন এবং সেখান থেকে কমান্ড চালাতে পারেন।
perl -d -e 1
দুটি জনপ্রিয় পার্ল আরপিএল রয়েছে।
sudo apt-get install libreply-perl। তারপরে এটি replyটার্মিনালে কেবল টাইপ করে চালানো যায় ।
আমি তৈরি করেছি perli, একটি পার্ল REPL যা লিনাক্স, ম্যাকোস এবং উইন্ডোজে চলে ।
এর ফোকাসটি স্বয়ংক্রিয় ফলাফল মুদ্রণ, সুবিধাজনক ডকুমেন্টেশন লুকআপ এবং নিয়মিত-এক্সপ্রেশন ম্যাচের সহজ পরিদর্শন।
আপনি এখানে স্ক্রিনশট দেখতে পারেন ।
এটি একা একা কাজ করে (পার্ল নিজে ছাড়া অন্য কোনও নির্ভরতা নেই) তবে কমান্ড-লাইন সম্পাদনা, ক্রমাগত কমান্ডের ইতিহাস এবং ট্যাব-সমাপ্তি সমর্থন করার জন্য ইনস্টলেশনটি rlwrapদৃ strongly়ভাবে সুপারিশ করা হয় - এখানে আরও পড়ুন ।
স্থাপন
আপনি যদি নোড.জেএস ইনস্টল করে থাকেন:
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
ডেভেল :: রিপাবলিক থেকে পুনরায়
রিড-ইভাল-প্রিন্ট লুপ:
$ perl -e'while(<>){print eval,"\n"}'
পার্লের কোনও কনসোল নেই তবে ডিবাগারটি এটি হিসাবে ব্যবহার করা যেতে পারে। কমান্ড প্রম্পটে টাইপ করুন perl -de 1। ("1" মানটি কোনও ব্যাপার নয়, এটি কেবল একটি বৈধ বিবৃতি যা কিছুই করে না))
পার্ল শেলের জন্য বেশ কয়েকটি বিকল্প রয়েছে ।
আরও তথ্যের জন্য পড়ুন perlfaq3 ।
আপনি এখানে psh দেখতে পারেন: http://gnp.github.io/psh/
এটি একটি পূর্ণ শেল (উদাহরণস্বরূপ ব্যাশের বদলে আপনি এটি ব্যবহার করতে পারেন), তবে পার্ল সিনট্যাক্স ব্যবহার করে .. যাতে আপনি ফ্লাইতে পদ্ধতি তৈরি করতে পারেন ইত্যাদি
ম্যাট ট্রাউট এর ওভারভিউ তালিকা পাঁচটি বিকল্প থেকে perl -de 0অগ্রে, এবং তিনি বিশেষ পরামর্শ দেওয়া হচ্ছে Reply, যদি প্লাগিন মাধ্যমে extensibility গুরুত্বপূর্ণ, বা tinyreplথেকে Eval::WithLexicalsএকটি ন্যূনতম খাঁটি-Perl সমাধান readline সমর্থন এবং আভিধানিক অধ্যবসায় অন্তর্ভুক্ত জন্য।
আপডেট: আমি তখন থেকে ডাউনলোডযোগ্য আরপিএল তৈরি করেছি - আমার অন্যান্য উত্তর দেখুন ।
অন্ধত্বের সুবিধার সাথে:
rlwrapযা কোনও কমান্ডকে রিডলাইন সমর্থন সরবরাহ করে, আপনি একটি সহজ পার্ল কমান্ডের সাথে একসাথে ব্যবহারযোগ্য আরপিএল তৈরি করতে পারেন এবং তৃতীয় পক্ষের আরপিএল সমাধান ছাড়াই এটি করতে পারেন do
rlwrapমাধ্যমে Homebrew সঙ্গে brew install rlwrap।rlwrapতাদের নিজস্ব প্যাকেজ পরিচালকদের মাধ্যমে দেওয়া উচিত ; উদাহরণস্বরূপ, উবুন্টুতে, ব্যবহার করুন sudo apt-get install rlwrap।rlwrap এবং পার্ল কমান্ডের সংমিশ্রনের জন্য দেখুন ।জনের উত্তর দিয়ে আপনি কী পাবেন না :
একমাত্র তৃতীয় পক্ষের সমাধান যা এইগুলি সরবরাহ করে (অ-তুচ্ছ ইনস্টলেশন + অতিরিক্ত, অ-সুস্পষ্ট পদক্ষেপ সহ), এটি psh , তবে:
এটি প্রায় 2.5 বছরে কোনও ক্রিয়াকলাপ দেখেনি
তার ফোকাস এটি একটি পূর্ণাঙ্গ হতে করার লক্ষ্যে কাজ করে ভিন্ন শেল প্রতিস্থাপন , এবং এইভাবে একটি ঐতিহ্যগত শেল, যার মানে এটি স্বয়ংক্রিয়ভাবে একটি হিসাবে কমান্ড মূল্যায়ন করে না মত কাজ করে পার্ল বিবৃতি এবং যেমন একটি সুনির্দিষ্ট আউটপুট কমান্ড প্রয়োজন printথেকে একটি এক্সপ্রেশন ফলাফল মুদ্রণ।
জান সেরেনকের উত্তর একরকমভাবে উন্নত করা যেতে পারে:
আপনি যদি Data::Printerমডিউলটি [sudo] cpan Data::Printerএক-সময়ের অপারেশন হিসাবে ইনস্টল করেন তবে আপনি এটি ফাংশনটি ব্যবহারের জন্য REPL এ লোড করতে পারেন p(), যেখানে আপনি তালিকা / অ্যারে / হ্যাশ টেবিলগুলি গণনার জন্য পাস করতে পারবেন।
এখানে পঠন এবং সমর্থন সহ একটি উপনাম দেওয়া আছেiperlData::Printer , যা আপনি আপনার পসিক্স-এর মতো শেলের প্রারম্ভিকরণ ফাইলটিতে রাখতে পারেন (যেমন, ~/.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
সিপিএএন-তে ptkdb দেখুন: http://search.cpan.org/search?query=ptkdb&mode=all
সেপিয়া এবং পিডিইয়ের নিজস্ব আরপিএল রয়েছে (জিএনইউ ইম্যাক্সের জন্য)।
স্টাইলিশ REPL (জিএনইউ ইম্যাক্সের জন্যও) দেখুন http://blog.jrock.us/articles/Stylish%20REPL.pod
আপনি এটি অনলাইনে করতে পারেন (জীবনের অনেকগুলি জিনিসের মতো):
$ rlwrap perl -d -e 1আপনি ইতিহাস এবং একটি ধারাবাহিক প্রম্পট পাবেন