=pod =for comment DO NOT EDIT. This Pod was generated by Swim v0.1.48. See http://github.com/ingydotnet/swim-pm#readme =encoding utf8 =head1 NAME XXX - See Your Data in the Nude =head1 VERSION This document describes L version B<0.38>. =for html xxx-pm xxx-pm =head1 SYNOPSIS use XXX; XXX my $dog = Dog->new({has => ['fleas', 'style']}); my $dog = XXX Dog->new({has => ['fleas', 'style']}); my $dog = Dog->new(XXX {has => ['fleas', 'style']}); my $dog = Dog->new({XXX has => ['fleas', 'style']}); my $dog = Dog->new({has => XXX ['fleas', 'style']}); my $dog = Dog->new({has => [XXX 'fleas', 'style']}); =head1 DESCRIPTION C exports a function called C that you can put just about anywhere in your Perl code to make it die with a YAML dump of the arguments to its right. The charm of XXX-debugging is that it is easy to type, rarely requires parens and stands out visually so that you remember to remove it. C also exports C, C and C which do similar debugging things. =head1 FUNCTIONS =over =item C C will warn a dump of its arguments, and then return the original arguments. This means you can stick it in the middle of expressions. NOTE: If you use WWW with Test::More, it will C rather than C. mnemonic: W for warn =item C C will die with a dump of its arguments. mnemonic: XXX == Death, Nudity =item C C will print a dump of its arguments, and then return the original arguments. This means you can stick it in the middle of expressions. NOTE: If you use YYY with Test::More, it will C rather than C. mnemonic: YYY == Why Why Why??? or YAML YAML YAML =item C C will Carp::confess a dump of its arguments. mnemonic: You should confess all your sins before you sleep. zzzzzzzz =item C C will start an interactive debugger session using the C module. By default it will use the Perl debugger, but you can switch to the fancier Devel::Trepan debugger by setting the enviroment variable C. In the debugger session you will be able to both read and modify all variables including lexical variables. mnemonic: Debug, Debug, Debug! =back =head1 USE XXX WITHOUT C If you C in your shell environment, then C will be always be loaded, and all the functions will also be exported into the C
namespace. That means you can call C from any package with C<::XXX> (since C<::> is a synonym for C). Also C will be exported as C<$::XXX> which you can use like this: $self->foo->$::WWW->bar; This will warn a YAML dump of C<$self>, returning C<$self> so that C will be called correctly. =head1 CONFIGURATION By default, C uses YAML::PP to dump your data. You can change this like so: use XXX -with => 'Data::Dumper'; use XXX -with => 'Data::Dump'; use XXX -with => 'Data::Dump::Color'; use XXX -with => 'YAML'; use XXX -with => 'YAML::XS'; use XXX -with => 'YAML::SomeOtherYamlModule'; use XXX -with => 'JSON::Color'; use XXX -with => 'JSON::SomeOtherJsonModule'; You can also use the environment variable C to set the module, for example; PERL_XXX_DUMPER=JSON::Color perl script.pl PERL_XXX_DUMPER=YAML::PP::Highlight perl script.pl Only modules with names beginning with 'YAML' or 'JSON', and the Data::Dumper, Data::Dump, and Data::Dump::Color modules are supported. If you need to load XXX with C, you can set the dumper module with the C<$XXX::DumpModule> global variable. require XXX; $XXX::DumpModule = 'YAML::Syck'; XXX::XXX($variable); =head1 STACK TRACE LEVEL If you call a debugging function that calls C for you, C will print the wrong file and line number. To force C to skip a package in the call stack, just define the C constant like this: package MyDebugger; use constant XXX_skip => 1; sub debug { require XXX; XXX::XXX(@_); } Now calls to MyDebugger::debug will print the file name you called it from, not from MyDebugger itself. =head1 AUTHOR Ingy döt Net =head1 COPYRIGHT AND LICENSE Copyright 2006-2021. Ingy döt Net. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See L =cut