我还使用pdl2
(PDL
shell)作为我的默认 Perl 交互式 shell(它加载了所有不错的插件Devel::REPL
)。但我错过了x
翻斗打印别名。p
对 piddles 很好,但它不适用于普通的数组引用或哈希引用。我已经加载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
并导出它们?我想使用真正的 REPL 而不是 Perl 调试器作为交互式 shell,但是 Perl 调试器仍然有一些我不知道如何处理的重要事情Devel::REPL
or 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
-like 来转储想要的变量?