Ich benutze pdl2
(die PDL
Shell) auch als meine Standard Perl interaktive Shell (es lädt alle netten Plugins für Devel::REPL
). Aber ich vermisse die x
Dumper-Drucken Alias. ist nett für Piddles, aber es funktioniert nicht für eine normale Array Ref oder Hash Ref. Ich habe geladen Data::Dumper
, aber es fehlt eine einfache Möglichkeit zur Steuerung der Tiefe und ich mag die Art, wie Sie schnell Tiefengrenzen mit x
, z. x 2 $deep_datastruct
für komplexe Datenstrukturen. Aber mit Data::Dumper
der Prozess ist umständlicher:Gibt es eine Entsprechung zum Perl-Debugger 'x' in pdl2 (oder Devel :: REPL)?
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
};
Im Perl debugger Sie die gleiche Sache mit x 1 $c
direkt erreichen können. Hat pdl2
etwas ähnliches und so kurz?
[update] Und mit dieser Frage verbunden: Hat pdl2
oder Devel::REPL
haben Komfortfunktionen wie der Perl-Debugger m
oder y
Befehle? Oder soll man ein Modul mit PadWalker
erstellen und exportieren? Ich würde gerne eine echte REPL anstelle des Perl-Debuggers als interaktive Shell verwenden, aber der Perl-Debugger hat einige wichtige Dinge, von denen ich nicht weiß, wie sie mit Devel::REPL
oder pdl2
umgehen sollen.
Zum Beispiel alle Variablen zu sehen (pdl2
zeigen nur macht herum):
pdl> help vars
PDL variables in package main::
Name Type Dimension Flow State Mem
----------------------------------------------------------------
no PDL objects in package main::
By the way, kennt jemand ein Devel::REPL
Plugin für die Variablen in allen Gebrauch Auflistung (wie y
im Debugger, aber nur die Namen, nicht die Werte) und dann haben Sie eine x
-Like, um die gewünschte dump?
Das ist das Problem, ich habe diese Option aus, denn wenn Sie ein mastodontisches Composite-Objekt mit einem der Unterobjekte die Rückgabe einer Datenbank mit 10000 Zeilen haben, möchten Sie nicht Everyting ausdrucken. Wahrscheinlich möchten Sie nur die erste Ebene des Hashes drucken, um zu sehen, welche Unterobjekte enthalten (wie db> x 2 $ mastobject). –