Jak mogę uruchomić interaktywną konsolę dla Perla, podobną do irb
komendy dla Ruby lub python
Pythona?
264
Jak mogę uruchomić interaktywną konsolę dla Perla, podobną do irb
komendy dla Ruby lub python
Pythona?
Możesz użyć debugera Perla w trywialnym programie, na przykład:
perl -de1
Alternatywnie jest aplikacja Perla na konsoli Alexis Sukrieh , ale jej nie używałem.
$ rlwrap perl -d -e 1
Otrzymasz historię i spójny monitcontrol
+L
nie działa w tym interfejsie poleceń, jak powinienem odświeżyć ekran?rlwrap
). Wszystkie rozwiązania REPL / konsoli innych firm, w tymperlconsole
, są kłopotliwe w instalacji i często mają więcej ograniczeń.perl -de1
nie wydaje się wsparciamy
zmiennych i skróty nie działają albo z jakiegoś powodu ...perlconsole
nie cierpi z powodu tych problemów.Matt Trout nie tylko napisał artykuł o REPL, ale napisał jeden - Devel :: REPL
Użyłem go trochę i działa dość dobrze i jest w trakcie aktywnego rozwoju.
BTW, nie mam pojęcia, dlaczego ktoś zmodyfikował osobę, która wspomniała o użyciu „perl -e” z konsoli. To nie jest tak naprawdę REPL, prawda, ale jest fantastycznie przydatne i używam go cały czas.
źródło
[sudo] cpan Devel::REPL
nie działało dla mnie, ani na OSX 10.10 (Perl 5.18.2), ani na Ubuntu 14.04 (Perl 5.18.2): dostaję błędy w czasie wykonywania narzekające na brakujące moduły; zainstalowałem jeden, a potem zrezygnowałem po zgłoszeniu kolejnego brakującego modułu.re.pl
autor Matt Trout napisał artykuł wymieniający kilka alternatyw, a on sam sugeruje użyciereply
zamiastre.pl
: shadow.cat/blog/matt-s-trout/mstpan-17Napisałem skrypt, który nazywam „psh”:
Cokolwiek wpiszesz, ocenia w Perlu:
źródło
Jeśli chcesz historii, użyj rlwrap . Może to być
~/bin/ips
na przykład Twój :A tak to wygląda:
źródło
alias iperl='rlwrap -A -S "perl> " perl -wnE '\''say eval()//$@'\'
. Użytkowników OSX można zainstalowaćrlwrap
poprzez Homebrew zbrew install rlwrap
.rlwrap -A -pgreen -S'perl> ' perl -MData::Dumper -wnE'say Dumper[eval()]//$@'
Myślę, że pytasz o interfejs REPL (odczyt, ocena, drukowanie, pętla) dla perla. Można to zrobić na kilka sposobów:
źródło
Używam wiersza polecenia jako konsoli:
Następnie mogę użyć mojej historii bashów, aby odzyskać stare polecenia. To jednak nie zachowuje stanu.
Ten formularz jest najbardziej przydatny, gdy chcesz przetestować „jedną małą rzecz” (na przykład odpowiadając na pytania Perla). Często okazuje się, że polecenia te są dosłownie zdrapywane do skryptu powłoki lub makefile.
źródło
fish
nawet nie potrzebujesz\n
.Nie ma wbudowanej interaktywnej konsoli dla Perla, tak jak Python. Możesz jednak użyć Debugera Perla do debugowania powiązanych rzeczy. Włączasz ją z opcją -d, ale możesz chcieć sprawdzić „man perldebug”, aby się o tym dowiedzieć.
Po trochę googlingu, istnieje oddzielny projekt, który implementuje konsolę Perl, którą można znaleźć na http://www.sukria.net/perlconsole.html .
Mam nadzieję że to pomoże!
źródło
Zawsze możesz po prostu wpaść do wbudowanego debuggera i uruchomić z niego polecenia.
źródło
Istnieją dwa popularne Perl REPL.
źródło
sudo apt-get install libreply-perl
. Następnie można go uruchomić, wpisującreply
terminal.Stworzyłem
perli
, Perl REPL, który działa w systemie Linux, macOS i Windows .Koncentruje się na automatycznym drukowaniu wyników, wygodnym wyszukiwaniu dokumentacji i łatwej kontroli dopasowań wyrażeń regularnych.
Można zobaczyć zdjęcia tutaj .
Działa autonomicznie (nie ma żadnych innych zależności niż sam Perl), ale zdecydowanie zaleca się instalację,
rlwrap
aby wesprzeć edycję wiersza poleceń, trwałą historię poleceń i uzupełnianie tabulatorów - czytaj więcej tutaj .Instalacja
Jeśli akurat masz zainstalowany Node.js:
Inaczej:
Unix -jak platformach: Pobierz ten skrypt jako
perli
do folderu w ścieżce systemu i uczynić go wykonywalnym zchmod +x
.Windows : Pobierz ten skrypt jako
perli.pl
(zwróć uwagę na.pl
rozszerzenie) do folderu na ścieżce systemu.Jeśli nie masz nic przeciwko inwokowaniu Perli jako
perli.pl
, wszystko jest gotowe.W przeciwnym razie utwórz plik wsadowy o nazwie
perli.cmd
w tym samym folderze o następującej treści@%~dpn.pl %*
:; umożliwia to wywołanie jako słuszneperli
.źródło
perldoc
zperli
REPL jak'someCommand ?'
. Wygląda na to, że od jakiegoś czasu nie był aktualizowany, czy nadal utrzymujesz Perli?perli
od jakiegoś czasu nie był aktualizowany, ponieważ do mojego osobistego użytku nie natknąłem się na żadne problemy i wydaje się, że niewiele osób go używa, ale o ile wiem, nadal działa tak, jak reklamowano.Zawsze robiłem:
W wersji 5.10 zmieniłem na:
(rlwrap jest opcjonalny)
źródło
perl -d
jest twoim przyjacielem:źródło
re.pl z Devel :: REPL
źródło
Pętla do odczytu-odczytu-ewaluacji:
źródło
Perl nie ma konsoli, ale debugger może być używany jako jeden. W wierszu polecenia wpisz
perl -de 1
. (Wartość „1” nie ma znaczenia, to tylko prawidłowe stwierdzenie, które nic nie robi.)Istnieje również kilka opcji dla powłoki Perla .
Aby uzyskać więcej informacji, przeczytaj perlfaq3 .
źródło
Możesz zajrzeć do psh tutaj: http://gnp.github.io/psh/
Jest pełny w powłoce (możesz go użyć na przykład zamiast basha), ale używa składni perla .. więc możesz tworzyć metody w locie itp.
źródło
W obszarze Debian / Ubuntu:
źródło
Przegląd Matta Trouta wymienia pięć opcji,
perl -de 0
począwszy od tego , i zalecaReply
, jeśli rozszerzalność za pomocą wtyczek jest ważna, lubtinyrepl
odEval::WithLexicals
, dla minimalnego, czysto perlowego rozwiązania, które obejmuje wsparcie readline i trwałość leksykalną.źródło
Aktualizacja: Od tego czasu stworzyłem REPL do pobrania - patrz moja inna odpowiedź .
Z perspektywy czasu:
rlwrap
, który zapewnia obsługę readline dla dowolnej komendy, możesz połączyć ją z prostą komendą Perla, aby utworzyć użyteczną REPL , a tym samym zrezygnować z rozwiązań REPL innych firm.rlwrap
poprzez Homebrew zbrew install rlwrap
.rlwrap
za pośrednictwem odpowiednich menedżerów pakietów; np. na Ubuntu, użyjsudo apt-get install rlwrap
.rlwrap
polecenia Perl.Czego NIE otrzymujesz z odpowiedzią Jána:
Jedynym rozwiązaniem oferowanym przez inne firmy (z nietrywialną instalacją + dodatkowymi, nieoczywistymi krokami) jest psh , ale:
nie widziała aktywności od około 2,5 roku
Skupia różni się tym, że ma być pełnoprawnym wymiana powłoki , a tym samym działa jak tradycyjny skorupy, co oznacza, że nie automatycznie ocenić polecenia jako Perl rachunku i wymaga wyraźnej komendy wyjściowe, takie jak
print
na wypisz wynik wyrażenia.Odpowiedź Jána Sáreníka można poprawić w jeden sposób:
Jeśli
Data::Printer
moduł zostanie zainstalowany[sudo] cpan Data::Printer
jako jednorazowa operacja, można załadować go do REPL w celu użyciap()
funkcji, do której można przekazać listy / tablice / tablice skrótów do wyliczenia.Oto alias o nazwie
iperl
readline iData::Printer
wsparciu , który możesz umieścić w pliku inicjującym powłoki podobnym do POSIX (np.~/.bashrc
):Na przykład możesz wykonać następujące czynności, aby wydrukować wszystkie zmienne środowiskowe za pomocą tablicy hashtable
%ENV
:Podobnie jak w przypadku odpowiedzi Jána, skalarny wynik wyrażenia jest automatycznie drukowany; na przykład:
źródło
Poszukaj również ptkdb w CPAN: http://search.cpan.org/search?query=ptkdb&mode=all
źródło
Sepia i PDE mają również własne REPL (dla GNU Emacs).
źródło
Zobacz także Stylowy REPL (dla GNU Emacs) http://blog.jrock.us/articles/Stylish%20REPL.pod
źródło
Możesz to zrobić online (jak wiele rzeczy w życiu) tutaj:
https://www.tutorialspoint.com/execute_perl_online.php
źródło