1XXX(3) User Contributed Perl Documentation XXX(3)
2
3
4
6 XXX - See Your Data in the Nude
7
9 This document describes XXX version 0.38.
10
12 use XXX;
13 XXX my $dog = Dog->new({has => ['fleas', 'style']});
14 my $dog = XXX Dog->new({has => ['fleas', 'style']});
15 my $dog = Dog->new(XXX {has => ['fleas', 'style']});
16 my $dog = Dog->new({XXX has => ['fleas', 'style']});
17 my $dog = Dog->new({has => XXX ['fleas', 'style']});
18 my $dog = Dog->new({has => [XXX 'fleas', 'style']});
19
21 "XXX.pm" exports a function called "XXX" that you can put just about
22 anywhere in your Perl code to make it die with a YAML dump of the
23 arguments to its right.
24
25 The charm of XXX-debugging is that it is easy to type, rarely requires
26 parens and stands out visually so that you remember to remove it.
27
28 "XXX.pm" also exports "WWW", "YYY" and "ZZZ" which do similar
29 debugging things.
30
32 "WWW"
33 "WWW" will warn a dump of its arguments, and then return the
34 original arguments. This means you can stick it in the middle of
35 expressions.
36
37 NOTE: If you use WWW with Test::More, it will diag() rather than
38 warn().
39
40 mnemonic: W for warn
41
42 "XXX"
43 "XXX" will die with a dump of its arguments.
44
45 mnemonic: XXX == Death, Nudity
46
47 "YYY"
48 "YYY" will print a dump of its arguments, and then return the
49 original arguments. This means you can stick it in the middle of
50 expressions.
51
52 NOTE: If you use YYY with Test::More, it will note() rather than
53 print().
54
55 mnemonic: YYY == Why Why Why??? or YAML YAML YAML
56
57 "ZZZ"
58 "ZZZ" will Carp::confess a dump of its arguments.
59
60 mnemonic: You should confess all your sins before you sleep.
61 zzzzzzzz
62
63 "DDD"
64 "DDD" will start an interactive debugger session using the
65 "Enbugger" module. By default it will use the Perl debugger, but
66 you can switch to the fancier Devel::Trepan debugger by setting the
67 enviroment variable "PERL_XXX_DEBUGGER=trepan".
68
69 In the debugger session you will be able to both read and modify
70 all variables including lexical variables.
71
72 mnemonic: Debug, Debug, Debug!
73
75 If you "export PERL5OPT='-MXXX=global'" in your shell environment, then
76 "XXX" will be always be loaded, and all the functions will also be
77 exported into the "main" namespace. That means you can call "XXX" from
78 any package with "::XXX" (since "::" is a synonym for "main::").
79
80 Also "XXX" will be exported as $::XXX which you can use like this:
81
82 $self->foo->$::WWW->bar;
83
84 This will warn a YAML dump of $self, returning $self so that "bar" will
85 be called correctly.
86
88 By default, "XXX" uses YAML::PP to dump your data. You can change this
89 like so:
90
91 use XXX -with => 'Data::Dumper';
92 use XXX -with => 'Data::Dump';
93 use XXX -with => 'Data::Dump::Color';
94 use XXX -with => 'YAML';
95 use XXX -with => 'YAML::XS';
96 use XXX -with => 'YAML::SomeOtherYamlModule';
97 use XXX -with => 'JSON::Color';
98 use XXX -with => 'JSON::SomeOtherJsonModule';
99
100 You can also use the environment variable "PERL_XXX_DUMPER" to set the
101 module, for example;
102
103 PERL_XXX_DUMPER=JSON::Color perl script.pl
104 PERL_XXX_DUMPER=YAML::PP::Highlight perl script.pl
105
106 Only modules with names beginning with 'YAML' or 'JSON', and the
107 Data::Dumper, Data::Dump, and Data::Dump::Color modules are supported.
108
109 If you need to load XXX with "require", you can set the dumper module
110 with the $XXX::DumpModule global variable.
111
112 require XXX;
113 $XXX::DumpModule = 'YAML::Syck';
114
115 XXX::XXX($variable);
116
118 If you call a debugging function that calls "XXX" for you, "XXX" will
119 print the wrong file and line number. To force "XXX" to skip a package
120 in the call stack, just define the "XXX_skip" constant like this:
121
122 package MyDebugger;
123 use constant XXX_skip => 1;
124 sub debug {
125 require XXX;
126 XXX::XXX(@_);
127 }
128
129 Now calls to MyDebugger::debug will print the file name you called it
130 from, not from MyDebugger itself.
131
133 Ingy döt Net <ingy@cpan.org>
134
136 Copyright 2006-2021. Ingy döt Net.
137
138 This program is free software; you can redistribute it and/or modify it
139 under the same terms as Perl itself.
140
141 See <http://www.perl.com/perl/misc/Artistic.html>
142
143
144
145perl v5.36.0 2023-01-20 XXX(3)