PDL2(またはDevel :: REPL)にPERLデバッガー「X」に相当するものはありますか?
-
29-09-2019 - |
質問
使ってます pdl2
( PDL
シェル)また、私のデフォルトのperlインタラクティブシェルとして(それはすべての素敵なプラグインをロードします Devel::REPL
)。しかし、私はそれを見逃しています x
ダンパープリントエイリアス。 p
Piddlesにはいいですが、通常の配列RefまたはHash Refでは機能しません。私はロードしました Data::Dumper
しかし、それは深さを制御する簡単な方法を欠いており、私はあなたが深さ制限をすばやく設定できる方法が好きです x
, 、例: x 2 $deep_datastruct
複雑なデータ構造用。しかし、と Data::Dumper
このプロセスはより面倒です:
pdl> say $c
HASH(0x53b0b60)
pdl> p $c
HASH(0x12b14018)
pdl> use Data::Dumper
pdl> p Dumper $c
$VAR1 = {
'c' => {
'c' => 3,
'a' => 1,
'b' => {
'c' => '3',
'a' => '1',
'b' => '2'
}
},
'a' => 1,
'b' => 4
};
pdl> $Data::Dumper::Maxdepth = 1;
pdl> p Dumper $c
$VAR1 = {
'c' => 'HASH(0x97fba70)',
'a' => 1,
'b' => 4
};
Perlで デバッガ 同じことを達成できます x 1 $c
直接。します pdl2
似たようなものととても簡潔なものがありますか?
アップデートこの質問に関連しています pdl2
また Devel::REPL
Perlデバッガーコマンドのような便利な機能があります m
また y
?または、でモジュールを作成する必要があります PadWalker
そしてそれらをエクスポートしますか? Perlデバッガーの代わりにインタラクティブなシェルとして実際のREPLを使用したいのですが、Perlデバッガーには、やり方がわからない重要なことがあります。 Devel::REPL
また pdl2
.
たとえば、すべての変数を表示するには(pdl2
Piddlesのみを表示します):
pdl> help vars
PDL variables in package main::
Name Type Dimension Flow State Mem
----------------------------------------------------------------
no PDL objects in package main::
ちなみに、誰かが知っていますか Devel::REPL
使用中のすべての変数をリストするためのプラグイン( y
デバッガーでは、値ではなく名前のみです) x
- 必要なものを捨てるように?
解決
Devel :: Replが提供するように見えます 簡単な代替 あなたの最初の質問のために。ホームディレクトリに「.perldlrc」というファイルを作成します。
use Data::Dumper;
sub x {
my $depth = shift;
$Data::Dumper::Maxdepth = $depth;
print Data::Dumper->Dump([@_])
}
残念ながら、次のようにコンマが必要です。
pdl> x 1, $c
この同じコントロールファイルアプローチで他のコマンドを実装できるようです。コンマの必要性を取り除く方法はありませんが、これらの種類のコマンドを認識して解析することはできない理由はないと思いますが。
他のヒント
Devel :: Repl Shell re.pl
すでに最後の式の値をデフォルトでダンプしています:
[foo@host]$ re.pl
$ { a => 23, b => 34}
$HASH1 = {
a => 23,
b => 34
};
$