#!perl ## no critic: InputOutput::ProhibitInteractiveTest use 5.010; use strict; use warnings; use Getopt::Long; our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY our $DATE = '2022-03-20'; # DATE our $DIST = 'App-SerializeUtils'; # DIST our $VERSION = '0.165'; # VERSION my $color = -t STDOUT; my $method = 'eval'; GetOptions( 'eval' => sub { $method = 'eval' }, 'undump' => sub { $method = 'undump' }, 'color!' => \$color, 'help' => sub { print "Usage: pp-dd <file>\n"; exit 0; }, ); local $/ = undef; my $data; if ($method eq 'eval') { $data = eval scalar <>; ## no critic: BuiltinFunctions::ProhibitStringyEval } else { require Data::Undump; $data = Data::Undump::undump(scalar <>); if (!defined($data) && $@) { die } } if ($color) { require Data::Dump::Color; Data::Dump::Color::dd($data); } else { require Data::Dump; Data::Dump::dd($data); } 1; # ABSTRACT: Pretty-print (and colorize) Perl data structure # PODNAME: pp-perl __END__ =pod =encoding UTF-8 =head1 NAME pp-perl - Pretty-print (and colorize) Perl data structure =head1 VERSION This document describes version 0.165 of pp-perl (from Perl distribution App-SerializeUtils), released on 2022-03-20. =head1 DESCRIPTION By default, when in interactive mode will load Perl data structure using eval() and dump+colorize it using L<Data::Dump::Color>, and when piped will dump data using L<Data::Dump>. =head1 OPTIONS =head2 --eval (default) Use eval() to load the Perl data structure. =head2 --undump Use L<Data::Undump> instead of eval() to load the Perl data structure. This is safer and faster, but more limited. =head2 --color, --no-color Force using color (Data::Dump::Color) or no color. The default is to check whether STDOUT is not piped (interactive mode) to enable color. =head1 ENVIRONMENT =head2 COLOR Boolean. Set default for color. =head1 HOMEPAGE Please visit the project's homepage at L<https://metacpan.org/release/App-SerializeUtils>. =head1 SOURCE Source repository is at L<https://github.com/perlancar/perl-App-SerializeUtils>. =head1 AUTHOR perlancar <perlancar@cpan.org> =head1 CONTRIBUTING To contribute, you can send patches by email/via RT, or send pull requests on GitHub. Most of the time, you don't need to build the distribution yourself. You can simply modify the code, then test via: % prove -l If you want to build the distribution (e.g. to try to install it locally on your system), you can install L<Dist::Zilla>, L<Dist::Zilla::PluginBundle::Author::PERLANCAR>, and sometimes one or two other Dist::Zilla plugin and/or Pod::Weaver::Plugin. Any additional steps required beyond that are considered a bug and can be reported to me. =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2022, 2021, 2020, 2018, 2017, 2015, 2014, 2013, 2011 by perlancar <perlancar@cpan.org>. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =head1 BUGS Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=App-SerializeUtils> When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature. =cut