Bagaimana saya bisa memulai konsol interaktif untuk Perl, mirip dengan irb
perintah untuk Ruby atau python
untuk Python?
264
Bagaimana saya bisa memulai konsol interaktif untuk Perl, mirip dengan irb
perintah untuk Ruby atau python
untuk Python?
Anda dapat menggunakan perl debugger pada program sepele, seperti:
perl -de1
Atau ada aplikasi Perl Console Alexis Sukrieh , tapi saya belum menggunakannya.
$ rlwrap perl -d -e 1
Anda akan mendapatkan riwayat dan prompt yang konsistencontrol
+L
tidak berfungsi di bawah antarmuka perintah ini, bagaimana cara menyegarkan layar?rlwrap
). Semua solusi REPL / konsol pihak ketiga, termasukperlconsole
, rumit untuk dipasang dan seringkali memiliki lebih banyak keterbatasan.perl -de1
tampaknya tidak mendukungmy
variabel, dan hash juga tidak berfungsi, untuk beberapa alasan ...perlconsole
tidak menderita masalah ini.Matt Trout tidak hanya menulis artikel tentang REPL, ia juga menulis satu - Devel :: REPL
Saya sudah menggunakannya sedikit dan bekerja dengan cukup baik, dan sedang dalam pengembangan aktif.
BTW, saya tidak tahu mengapa seseorang mengubah orang yang disebutkan menggunakan "perl -e" dari konsol. Ini sebenarnya bukan REPL, benar, tetapi ini sangat berguna, dan saya menggunakannya setiap saat.
sumber
[sudo] cpan Devel::REPL
tidak bekerja untuk saya, baik pada OSX 10.10 (Perl 5.18.2) maupun di Ubuntu 14.04 (Perl 5.18.2): Saya mendapatkan kesalahan runtime mengeluh tentang modul yang hilang; menginstal satu, lalu menyerah setelah modul lain yang hilang dilaporkan.re.pl
penulis, menulis sebuah artikel daftar beberapa alternatif, dan ia sendiri menyarankan menggunakanreply
bukanre.pl
: shadow.cat/blog/matt-s-trout/mstpan-17Saya menulis skrip yang saya sebut "psh":
Apa pun yang Anda ketikkan, ia mengevaluasi dalam Perl:
sumber
Jika Anda ingin riwayat, gunakan rlwrap . Ini bisa menjadi milik Anda
~/bin/ips
misalnya:Dan seperti inilah tampilannya:
sumber
alias iperl='rlwrap -A -S "perl> " perl -wnE '\''say eval()//$@'\'
. Pengguna OSX dapat menginstalrlwrap
melalui Homebrew withbrew install rlwrap
.rlwrap -A -pgreen -S'perl> ' perl -MData::Dumper -wnE'say Dumper[eval()]//$@'
Saya pikir Anda bertanya tentang antarmuka REPL (Read, Evaluate, Print, Loop) ke perl. Ada beberapa cara untuk melakukan ini:
sumber
Saya menggunakan baris perintah sebagai konsol:
Lalu saya bisa menggunakan riwayat bash saya untuk mendapatkan kembali perintah lama. Namun, ini tidak melindungi negara.
Formulir ini paling berguna ketika Anda ingin menguji "satu hal kecil" (seperti saat menjawab pertanyaan Perl). Seringkali, saya menemukan perintah-perintah ini dikikis kata demi kata menjadi script shell atau makefile.
sumber
fish
Anda bahkan tidak perlu\n
.Tidak ada konsol interaktif untuk Perl yang dibangun seperti halnya Python. Namun Anda dapat menggunakan Perl Debugger untuk melakukan debugging hal-hal terkait. Anda menyalakannya dengan opsi -d, tetapi Anda mungkin ingin memeriksa 'man perldebug' untuk mempelajarinya.
Setelah sedikit googling, ada proyek terpisah yang mengimplementasikan konsol Perl yang dapat Anda temukan di http://www.sukria.net/perlconsole.html .
Semoga ini membantu!
sumber
Anda selalu bisa masuk ke debugger bawaan dan menjalankan perintah dari sana.
sumber
Ada dua REPL Perl yang populer.
sumber
sudo apt-get install libreply-perl
. Maka bisa dijalankan cukup mengetikreply
di terminal.Saya telah membuat
perli
, REPL Perl yang berjalan di Linux, macOS, dan Windows .Fokusnya adalah pencetakan hasil otomatis, pencarian dokumentasi yang mudah, dan pemeriksaan mudah terhadap kecocokan ekspresi reguler.
Anda dapat melihat tangkapan layar di sini .
Ia bekerja sendiri (tidak memiliki dependensi selain Perl sendiri), tetapi instalasi
rlwrap
sangat disarankan untuk mendukung pengeditan baris perintah, riwayat perintah persisten, dan penyelesaian tab - baca lebih lanjut di sini .Instalasi
Jika Node.js Anda terinstal:
Jika tidak:
Unix -seperti platform Download script ini sebagai
perli
sebuah folder dalam path sistem anda dan membuatnya dieksekusi denganchmod +x
.Windows : Unduh skrip ini sebagai
perli.pl
(perhatikan.pl
ekstensi) ke folder di jalur sistem Anda.Jika Anda tidak keberatan memanggil Perli sebagai
perli.pl
, Anda sudah siap.Jika tidak, membuat batch file bernama
perli.cmd
dalam folder yang sama dengan konten berikut:@%~dpn.pl %*
; ini memungkinkan doa sebagai adilperli
.sumber
perldoc
dariperli
REPL suka'someCommand ?'
. Sepertinya itu belum diperbarui untuk sementara waktu, apakah Anda masih mempertahankan perli?perli
belum diperbarui dalam beberapa saat, karena dalam penggunaan pribadi saya, saya belum menemukan masalah, dan beberapa orang lain tampaknya menggunakannya, tetapi, sejauh yang saya tahu, masih berfungsi seperti yang diiklankan.Saya selalu melakukannya:
Dengan 5.10, saya telah beralih ke:
(rlwrap adalah opsional)
sumber
perl -d
adalah temanmu:sumber
re.pl dari Devel :: REPL
sumber
Baca-eval-print loop:
sumber
Perl tidak memiliki konsol tetapi debugger dapat digunakan sebagai satu. Pada prompt perintah, ketik
perl -de 1
. (Nilai "1" tidak masalah, itu hanya pernyataan valid yang tidak melakukan apa-apa.)Ada juga beberapa opsi untuk shell Perl .
Untuk informasi lebih lanjut baca perlfaq3 .
sumber
Anda dapat melihat psh di sini: http://gnp.github.io/psh/
Ini penuh pada shell (Anda dapat menggunakannya sebagai pengganti bash misalnya), tetapi menggunakan sintaks perl .. sehingga Anda dapat membuat metode dengan cepat dll.
sumber
Di bawah Debian / Ubuntu:
sumber
Gambaran umum Matt Trout mencantumkan lima pilihan, mulai dari
perl -de 0
dan seterusnya, dan ia merekomendasikanReply
, jika ekstensibilitas melalui plugin itu penting, atautinyrepl
dariEval::WithLexicals
, untuk solusi minimal, murni-perl yang mencakup dukungan readline dan kegigihan leksikal.sumber
Pembaruan: Sejak itu saya telah membuat REPL yang dapat diunduh - lihat jawaban saya yang lain .
Dengan manfaat tinjau balik:
rlwrap
, yang menyediakan dukungan readline untuk perintah apa pun, Anda dapat menggabungkannya dengan perintah Perl sederhana untuk membuat REPL yang dapat digunakan , dan melakukannya tanpa solusi REPL pihak ketiga.rlwrap
melalui Homebrew withbrew install rlwrap
.rlwrap
melalui manajer paket masing-masing; misalnya, di Ubuntu, gunakansudo apt-get install rlwrap
.rlwrap
dan perintah Perl.Apa yang TIDAK Anda dapatkan dengan jawaban Ján:
Satu-satunya solusi pihak ketiga yang menawarkan ini (dengan instalasi non-sepele + tambahan, langkah-langkah tidak jelas), adalah psh , tetapi:
belum terlihat aktivitas dalam sekitar 2,5 tahun
fokusnya berbeda dalam hal ini bertujuan untuk menjadi pengganti shell penuh , dan dengan demikian bekerja seperti shell tradisional, yang berarti bahwa ia tidak secara otomatis mengevaluasi perintah sebagai pernyataan Perl , dan memerlukan perintah output eksplisit seperti
print
untuk cetak hasil ekspresi.Jawaban Ján Sáreník dapat ditingkatkan dengan satu cara:
Jika Anda memasang
Data::Printer
modul dengan[sudo] cpan Data::Printer
sebagai operasi satu kali, Anda dapat memuatnya ke dalam REPL untuk penggunaanp()
fungsi, yang Anda dapat lewati daftar / array / hashtables untuk enumerasi.Berikut ini adalah alias bernama
iperl
dengan readline danData::Printer
dukungan , yang dapat Anda masukkan ke file inisialisasi shell mirip POSIX Anda (mis.,~/.bashrc
):Misalnya, Anda dapat melakukan hal berikut untuk mencetak semua variabel lingkungan melalui hashtable
%ENV
:Seperti halnya jawaban Ján, hasil skalar dari ekspresi dicetak secara otomatis ; misalnya:
sumber
Cari juga ptkdb di CPAN: http://search.cpan.org/search?query=ptkdb&mode=all
sumber
Sepia dan PDE juga memiliki REPL sendiri (untuk GNU Emacs).
sumber
Lihat juga REPL Bergaya (untuk GNU Emacs) http://blog.jrock.us/articles/Stylish%20REPL.pod
sumber
Anda dapat melakukannya secara online (seperti banyak hal dalam hidup) di sini:
https://www.tutorialspoint.com/execute_perl_online.php
sumber