回答:
次のように、簡単なプログラムでperlデバッガーを使用できます。
perl -de1
あるいは、Alexis SukriehのPerlコンソールアプリケーションがありますが、私はそれを使用していません。
control
+ L
このコマンドインターフェイスでは機能しません。画面を更新するにはどうすればよいですか?
rlwrap
)。を含むすべてのサードパーティREPL /コンソールソリューションは、perlconsole
インストールが面倒であり、多くの場合、より多くの制限があります。
perl -de1
をサポートしていないようmy
で、ハッシュも機能しません…
perlconsole
これらの問題に悩まされることはありません。
Matt TroutがREPLに関する記事を書いただけでなく、実際に1つ書いた-Devel :: REPL
私はそれを少し使用しましたが、それはかなりうまくいき、活発に開発中です。
ところで、コンソールから「perl -e」の使用について言及した人が誰かを改造した理由はわかりません。これは実際にはREPLではありませんが、本当に便利です。私はいつもそれを使用しています。
[sudo] cpan Devel::REPL
OSX 10.10(Perl 5.18.2)でもUbuntu 14.04(Perl 5.18.2)でも、単純に実行するだけでは機能しませんでした。モジュールが見つからないというエラーメッセージが表示されます。1つをインストールし、別の不足しているモジュールが報告された後にあきらめました。
re.pl
著者は、いくつかの選択肢をリストアップ記事を書いた、と彼自身が使用することを提案しているreply
代わりにre.pl
:shadow.cat/blog/matt-s-trout/mstpan-17
私は "psh"と呼ぶスクリプトを書きました:
#! /usr/bin/perl
while (<>) {
chomp;
my $result = eval;
print "$_ = $result\n";
}
何を入力しても、Perlで評価されます。
> 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
経由で自作してbrew install rlwrap
。
rlwrap -A -pgreen -S'perl> ' perl -MData::Dumper -wnE'say Dumper[eval()]//$@'
perlへのREPL(読み取り、評価、印刷、ループ)インターフェイスについて質問していると思います。これにはいくつかの方法があります。
Pythonのように組み込みのPerl用のインタラクティブコンソールはありません。ただし、Perlデバッガーを使用して、関連するデバッグを行うことができます。-dオプションを使用してオンにしますが、「man perldebug」をチェックして詳細を確認することをお勧めします。
少しグーグルの後で、Perlコンソールを実装する別のプロジェクトがあります。 http://www.sukria.net/perlconsole.html。
お役に立てれば!
2つの人気のあるPerl REPLがあります。
sudo apt-get install libreply-perl
。次にreply
、ターミナルに入力するだけで実行できます。
Linux、macOS、Windowsで動作perli
するPerl REPLを作成しました。
その焦点は、自動結果印刷、便利なドキュメント検索、正規表現の一致の簡単な検査です。こちらから
スクリーンショットをご覧いただけます。
それは作品スタンドアローン(Perl自身以外の依存関係はありません)が、のインストールがrlwrap
強く推奨されるサポートコマンドライン編集、永続的なコマンド履歴、タブ補完するように-続きを読むここで。
取り付け
Node.jsがインストールされている場合:
npm install -g perli
さもないと:
perldoc
から起動できるのがperli
好き'someCommand ?'
です。しばらく更新されていないようですが、まだperliを維持していますか?
perli
私の個人的な使用では問題に遭遇しておらず、それを使用している人はほとんどいないため、しばらく更新されていません。
perl -d
あなたの友だちです:
% perl -de 0
Devel :: REPLのre.pl
Matt Troutの概要には5つの選択肢がリストperl -de 0
されてReply
おり、プラグインを介した拡張性が重要な場合tinyrepl
はEval::WithLexicals
、から、またはreadlineサポートと語彙の永続性を含む最小限の純粋なperlソリューションからはを推奨しています。
更新:ダウンロード可能なREPLを作成したので、他の回答を参照してください。
後知恵の利点:
rlwrap
コマンドにreadlineサポートを提供するCLIをインストールすると、それを単純なPerlコマンドと組み合わせて使用可能なREPLを作成できるため、サードパーティのREPLソリューションなしで実行できます。
rlwrap
経由で自作してbrew install rlwrap
。rlwrap
、それぞれのパッケージマネージャを介して提供する必要があります。たとえば、Ubuntuではを使用しますsudo apt-get install rlwrap
。rlwrap
。Jánの答えで得られないもの:
これらを提供する唯一のサードパーティソリューション(簡単ではないインストール+追加の非自明な手順)はpshですが、次のとおりです。
約2。5年で活動が見られない
その焦点は、それが本格的になることを目指していることで異なっているシェルの交換、ひいてはそれが自動的にコマンド評価しないことを意味し、伝統的なシェル、のように動作しますPerlの文を、そのように明示的な出力コマンドを必要とprint
します式の結果を出力します。
JánSáreníkの答えは1つの方法で改善できます。
でData::Printer
モジュールを[sudo] cpan Data::Printer
1回限りの操作としてインストールする場合は、列挙型のリスト/配列/ハッシュテーブルを渡すことができる関数を使用するために、REPLにモジュールをロードできますp()
。
readlineとsupportで名前が付けられiperl
Data::Printer
たエイリアスは次の~/.bashrc
とおりです。これは、POSIXのようなシェルの初期化ファイル(たとえば)に入れることができます。
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
Jánの回答と同様に、式のスカラー結果は自動的に出力されます。例えば:
iperl> 22 / 7 # automatically print scalar result of expression: 3.14285714285714
SepiaとPDEにも独自のREPL(GNU Emacs用)があります。
スタイリッシュなREPL(GNU Emacs用)も参照してください。http ://blog.jrock.us/articles/Stylish%20REPL.pod
あなたはそれをオンラインで行うことができます(人生の多くのことのように):
$ rlwrap perl -d -e 1
ことを検討してください。履歴と一貫したプロンプトが表示されます