Как запустить интерактивную консоль для Perl, аналогично irb
команде для Ruby или python
Python?
264
Как запустить интерактивную консоль для Perl, аналогично irb
команде для Ruby или python
Python?
Вы можете использовать отладчик perl в простой программе, например:
perl -de1
В качестве альтернативы есть консольное приложение Алексиса Сукрие , но я им не пользовался.
$ rlwrap perl -d -e 1
Вы получите историю и непротиворечивое приглашениеcontrol
+L
не работает в этом командном интерфейсе, как мне обновить экран?rlwrap
). Все сторонние решения REPL / консоли, в том числеperlconsole
, сложны в установке и часто имеют больше ограничений.perl -de1
похоже, чтоmy
переменные не поддерживаются , и хеши по какой-то причине тоже не работают ...perlconsole
не страдает от этих проблем.Мэтт Траут не только написал статью о REPL, но и написал одну - Devel :: REPL
Я использовал это немного, и это работает довольно хорошо, и это находится в стадии активной разработки.
Кстати, я понятия не имею, почему кто-то модернизировал человека, который упомянул «perl -e» с консоли. Это не совсем REPL, правда, но это фантастически полезно, и я использую его все время.
источник
[sudo] cpan Devel::REPL
не работал для меня, ни в OSX 10.10 (Perl 5.18.2), ни в Ubuntu 14.04 (Perl 5.18.2): я получаю ошибки времени выполнения с жалобами на отсутствующие модули; установил один, затем сдался после того, как другой пропавший модуль был сообщен.re.pl
автор, написал статью, в которой перечислены несколько альтернатив, и он сам предлагаетreply
вместоre.pl
: shadow.cat/blog/matt-s-trout/mstpan-17Я написал скрипт, который я называю "psh":
Что бы вы ни вводили, оно оценивается в Perl:
источник
Если вы хотите историю, используйте rlwrap . Это может быть ваш
~/bin/ips
например:И вот как это выглядит:
источник
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 (Read, Evaluate, Print, Loop) для Perl. Есть несколько способов сделать это:
источник
Я использую командную строку в качестве консоли:
Тогда я могу использовать мой Баш историю чтобы вернуть старые команды. Это не сохраняет государство, как бы то ни было.
Эта форма наиболее полезна, когда вы хотите проверить «одну маленькую вещь» (например, когда отвечаете на вопросы Perl). Часто я нахожу, что эти команды дословно записываются в сценарий оболочки или make-файл.
источник
fish
, тебе даже не нужно\n
.В Perl нет встроенной интерактивной консоли, как это делает Python. Однако вы можете использовать Perl Debugger для отладки связанных вещей. Вы включаете его с помощью опции -d, но, возможно, захотите проверить 'man perldebug', чтобы узнать об этом.
После небольшого поиска, есть отдельный проект, который реализует консоль Perl, которую вы можете найти по адресу http://www.sukria.net/perlconsole.html .
Надеюсь это поможет!
источник
Вы всегда можете просто зайти во встроенный отладчик и запустить команды оттуда.
источник
Есть два популярных Perl REPL.
источник
sudo apt-get install libreply-perl
. Затем его можно запустить, просто набравreply
в терминале.Я создал
perli
, Perl РЕПЛ , который работает на Linux, MacOS и Windows , .Его задача - автоматическая печать результатов, удобный поиск документации и простой контроль совпадений регулярных выражений.
Вы можете увидеть скриншоты здесь .
Он работает автономно (не имеет , кроме самого Perl зависимостей), но установка
rlwrap
настоятельно рекомендуется , чтобы поддерживать редактирование командной строки, историю команд упорной и табуляцию завершение - читать далее здесь .Монтаж
Если у вас установлен Node.js:
В противном случае:
Unix- подобные платформы: загрузите этот скрипт в
perli
папку в пути вашей системы и сделайте его исполняемым сchmod +x
.Windows : Загрузите этот скрипт как
perli.pl
(обратите внимание на.pl
расширение) в папку в пути вашей системы.Если вы не против вызвать Perli as
perli.pl
, все готово.В противном случае создайте пакетный файл с именем
perli.cmd
в той же папке со следующим содержимым@%~dpn.pl %*
:; это позволяет вызывать как разperli
.источник
perldoc
изperli
REPL, как'someCommand ?'
. Похоже, что он не обновлялся некоторое время, вы все еще поддерживаете Perli?perli
давно не обновлялся, потому что в моем личном использовании я не сталкивался с какими-либо проблемами, и, кажется, немногие другие используют его, но, насколько я знаю, он все еще работает так, как рекламируется.Я всегда делал:
С 5.10 я переключился на:
(rlwrap не является обязательным)
источник
perl -d
твой друг:источник
re.pl от Devel :: REPL
источник
Цикл чтения-проверки-печати:
источник
У Perl нет консоли, но отладчик можно использовать как единое целое. В командной строке введите
perl -de 1
. (Значение «1» не имеет значения, это просто правильное утверждение, которое ничего не делает.)Есть также несколько вариантов оболочки Perl .
Для получения дополнительной информации читайте perlfaq3 .
источник
Вы можете посмотреть в psh здесь: http://gnp.github.io/psh/
Это полная оболочка (например, вы можете использовать ее вместо bash), но использует синтаксис perl ... так что вы можете создавать методы на лету и т. Д.
источник
Под Debian / Ubuntu:
источник
В обзоре Мэтта Траута перечислены пять вариантов,
perl -de 0
и он рекомендуетReply
, если важна расширяемость с помощью плагинов, илиtinyrepl
отEval::WithLexicals
, для минимального, чисто Perl-решения, которое включает поддержку readline и лексическую устойчивость.источник
Обновление: с тех пор я создал загружаемый REPL - см. Мой другой ответ .
Оглядываясь назад:
rlwrap
, который обеспечивает поддержку readline для любой команды, вы можете объединить ее с простой командой Perl для создания пригодного REPL и, таким образом, обойтись без сторонних решений REPL.rlwrap
через Homebrew сbrew install rlwrap
.rlwrap
через соответствующих менеджеров пакетов; например, на Ubuntu, используйтеsudo apt-get install rlwrap
.rlwrap
и команды Perl.Что вы НЕ получите с ответом Яна:
Единственное стороннее решение, которое предлагает это (с нетривиальной установкой + дополнительными, неочевидными шагами), это psh , но:
он не видел активности около 2,5 лет
ее фокус отличается тем , что она стремится стать полноценной заменой корпуса , и , таким образом , работает как традиционные оболочки, что означает , что он не будет автоматически оценивать команду как Perl заявление, и требует явной команды вывода , таких как
print
к распечатать результат выражения.Ответ Яна Шареника можно улучшить одним способом:
Если вы устанавливаете
Data::Printer
модуль[sudo] cpan Data::Printer
как одноразовую операцию, вы можете загрузить его в REPL для использованияp()
функции, которой вы можете передать списки / массивы / хеш-таблицы для перечисления.Вот псевдоним с именем
iperl
readline иData::Printer
поддержкой , который вы можете поместить в файл инициализации вашей POSIX-подобной оболочки (например,~/.bashrc
):Например, вы можете сделать следующее, чтобы напечатать все переменные окружения через хеш-таблицу
%ENV
:Как и в ответе Яна, скалярный результат выражения печатается автоматически ; например:
источник
Также найдите ptkdb в CPAN: http://search.cpan.org/search?query=ptkdb&mode=all
источник
Sepia и PDE также имеют собственные REPL (для GNU Emacs).
источник
Смотрите также Стильный REPL (для GNU Emacs) http://blog.jrock.us/articles/Stylish%20REPL.pod
источник
Вы можете сделать это онлайн (как и многие вещи в жизни) здесь:
https://www.tutorialspoint.com/execute_perl_online.php
источник