J'utilise pdl2
(le shell PDL
) également en tant que mon shell interactif Perl par défaut (il charge tous les bons plugins pour Devel::REPL
). Mais il me manque l'alias x
dumper-printing. p
est sympa pour les pigles mais ça ne marche pas pour un ref de tableau normal ou un hash ref. J'ai chargé Data::Dumper
mais il manque un moyen facile de contrôler la profondeur et j'aime la façon dont vous pouvez rapidement définir les limites de profondeur avec x
, par exemple. x 2 $deep_datastruct
pour les structures de données complexes. Mais avec Data::Dumper
le processus est plus lourd:Existe-t-il un équivalent du débogueur Perl 'x' dans pdl2 (ou 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
};
Dans le Perl debugger vous pouvez obtenir la même chose avec x 1 $c
directement. Est-ce que pdl2
a quelque chose de similaire et de si concis?
[mise à jour] Et avec cette question liée: ne pdl2
ou Devel::REPL
ont des fonctions pratiques, comme les commandes débogueur Perl m
ou y
? Ou faut-il créer un module avec PadWalker
et les exporter? Je voudrais utiliser un vrai REPL au lieu du débogueur Perl comme un shell interactif, mais le débogueur Perl a encore des choses importantes que je ne sais pas comment faire avec Devel::REPL
ou pdl2
.
Par exemple, pour voir toutes les variables (pdl2
Afficher uniquement les musarde):
pdl> help vars
PDL variables in package main::
Name Type Dimension Flow State Mem
----------------------------------------------------------------
no PDL objects in package main::
Par ailleurs, ce que quelqu'un sait un plugin Devel::REPL
pour lister toutes les variables en cours d'utilisation (comme y
dans le débogueur, mais seulement les noms, pas les valeurs) et ont ensuite un x
-comme pour vider le voulu?
C'est le problème, j'ai cette option désactivée car si vous avez un objet composite mastodontic avec l'un des sous-objets étant le retour d'une base de données avec 10000 lignes, vous ne voulez pas imprimer everyting. Probablement vous voudriez imprimer seulement le premier niveau du hachage pour voir quels sous-objets contiennent (comme db> x 2 $ mastobject). –