Changes for version 0.99_019 - 2018-06-27

  • BUG FIXES:
    • more filter fixes on different module versions (many thanks to Slaven Rezić and all other CPAN testers).

Changes for version 0.99_018 - 2018-06-25

  • BUG FIXES:
    • fix filter test on older HTTP::Message

Changes for version 0.99_017 - 2018-06-25

  • BUG FIXES:
    • fix filter test failure on older Mojolicious
    • fix filter test failure on older Digest::MD5

Changes for version 0.99_016 - 2018-06-25

  • NEW FEATURES:
    • unsee() method in DDP objects to ignore visits
    • new Web filter bundle parsing JSON, Cookies and HTTP Request/Response.
    • DateTime filter now understands Time::Seconds and Time::Moment.
  • BUG FIXES:
    • fixed show_tied, which was not working properly since the refactor.
    • prevent non-ref counters from being refcounted
    • fix floating point test error in unusual hardware/OS combinations.
  • OTHER:
    • improved implementation of "seen" counter
    • improved documentation
    • removed unused code

Changes for version 0.99_015 - 2018-06-14

  • NEW FEATURES:
    • new ContentType filter to detect popular binaries in strings, like images, videos and documents.
  • OTHER:
    • code tidying
    • greatly improved documentation
    • test coverage increased
  • BUG FIXES:
    • DateTime/Digest/DB filters now honor colorization from themes
    • test fixes

Changes for version 0.99_014 - 2018-06-08

  • BUG FIXES:
    • DateTime filter: fix Class::Date test on systems that treat GMT as UTC.

Changes for version 0.99_013 - 2018-06-08

  • NEW FEATURES:
    • dualvar lax mode accepts leading/trailing whitespace in numbers
    • DB filter: improve display of replication lag
    • DB filter: list unique constraints on DBIC
    • DB filter: improved parsing of DBIC sources/resultsets/rows
  • BUG FIXES:
    • filter listings in RC file now always an array ref
    • DateTime filter: fix parsing of old Mojo::Date objects
    • DB filter: test fixes
    • Digest filter updated and re-added
  • OTHER:
    • DB filter: improve documentation
    • DB filter: increase test coverage
    • Digest filter: show class name by default on parsing digests

Changes for version 0.99_012 - 2018-05-25

  • NEW FEATURES:
    • show_dualvar now accepts 'strict', 'lax' and 'off'. Default is 'lax', ignoring decimal zeroes to the right (e.g. 1.00 and '1', '1.10' and 1.1)
    • multiline => 0 now also shortens the hash separator
  • OTHER:
    • test improvements
    • improved documentation

Changes for version 0.99_011 - 2018-05-24

  • BUG FIXES:
    • proper color downgrade on terminals who only support 256 colors.
    • fixed colorization tests
    • fixed DB external filters

Changes for version 0.99_010 - 2018-05-21

  • BUG FIXES:
    • extra debug info for failed colorization tests
    • another fix for Panda::Date (Slaven Rezić)

Changes for version 0.99_009 - 2018-05-20

  • BUG FIXES:
    • fix dualvar test on different locales (Slaven Rezić)
    • fix Panda::Date test when en_US locale not present (Slaven Rezić)

Changes for version 0.99_008 - 2018-05-20

  • NEW FEATURES:
    • show_dualvar (defaults to true) lets you know whenever both numeric and string values of a variable are set to a different thing (Philippe "BooK" Bruhat)
    • maybe_colorize() accepts a 'default color' so filters can use it.
    • extra_config() provies all non-core settings passed to Data::Printer, so filters can use them.
    • DateTime filter for Panda::Date (Sergey Aleynikov)
  • BUG FIXES:
    • fixed DateTime external filters
    • fix issue with dereferencing code refs (Håkon Hægland)
    • fix 'pass' on globs, regexes and code references (Håkon Hægland, Sergey Aleynikov)
  • OTHER:
    • documentation improvements

Changes for version 0.99_007 - 2018-05-17

  • BUG FIXES:
    • fix regex parsing in 5.10.1
    • test fixes for 5.11

Changes for version 0.99_006 - 2018-05-17

  • BUG FIXES:
    • fix longstanding issue of displaying weirdly-named objects like 'HASH' or "0" (github issue #105) (bessarabov + dur-randir)
    • fix test for UNIVERSAL::DOES
  • OTHER:
    • documentation improvements
    • remove undocumented and unsupported extra option in external filters.

Changes for version 0.99_005 - 2018-05-13

  • BUG FIXES:
    • fix regex filter on perl 5.8
    • improve ISA detection in perl 5.8 without MRO::Compat

Changes for version 0.99_004 - 2018-05-12

  • BUG FIXES:
    • fix tests on win32

Changes for version 0.99_003 - 2018-05-11

  • BUG FIXES:
    • fix test plan issue on some versions of Test::More
    • die from caller perspective on filter error
    • drop support for Sort::Naturally::XS

Changes for version 0.99_002 - 2018-05-10

  • BUG FIXES:
    • fix tests when bogus RC file is present
    • fix colored tests on travis
    • fix refcount test on perls <= 5.12
    • reset internal state after parsing
    • when scouting for methods, ensure GVs are named
    • synced p() and np() code so they behave exactly the same
    • fix use_prototypes => 0
    • prevent "double plan" warninga on tests
  • OTHER:
    • extra tests to increase code coverage
    • improved error handling in themes
    • function to convert old RC format to the new one
    • improved README
    • extra debug info on test failures
    • cleanup on unreachable code

Changes for version 0.99_001 - 2018-04-21

  • BACKWARDS-INCOMPATIBLE CHANGE
    • new format for the .dataprinterrc file
  • NEW FEATURES:
    • Data::Printer::Object available for public usage! (big thanks to frew && rjbs)
    • use DDP; p $foo, as => 'this is a label'; Hopefully this helps people tag their debug code without having to write caller_info => 1, caller_message => '...'
    • theme => 'XXX' will try and load Data::Printer::Theme::XXX, which you can create to share your colour scheme with the world!
    • speaking of colours, you can now use up to 256 of them (if your terminal supports them, of course)
    • print only a slice of arrays and hashes with:
      • array_max => 10 (default is 50, set it to 0 for unlimited)
      • array_overflow => '(...skipping __SKIPPED__ items...)'
      • array_preserve => 'begin' if the array has more than array_max elements, preserve the first array_max elements and replace the rest with '(...skipping XX items...)'. Other available options are 'end', 'middle', 'extremes', and 'none'.
      • hash_max / hash_overflow / hash_preserve (same! note however that preserved keys will only be the same if hash keys are sorted) Defaults to 50.
    • ignore_keys to skip their dump (feature by Eugen Konkov)
    • string_max/string_overflow/string_preserve to limit string entries (scalars), just like arrays and hashes. Defaults to 1024 and 'begin'. Set it to 0 for unlimited size.
    • new 'separator', 'brackets' and 'overflow' colors to control
    • unicode_charnames, when set to 1 (together with escape_chars) will try and use the Unicode name when escaping strings. So `$s = "\x{2603}"; p $s` will output "\N{SNOWMAN}"
    • show_refcount => 1 exposes the reference count for the data structure (and inner data) if the count is greater than 1. (default 0, showing no refcounts).
    • show_memsize => 1 shows the (approximated) amount of memory the variable occupies for all variables on that level. This means that '1' will show the size of the entire data structure, while 2 will also show sizes of inner data, 3 will go even deeper and so on. To get the size of everything, use 'all' - though usually you'll probably want to just use '1'. This requires Devel::Size, so the default is 0 for none.
    • memsize_unit defined in which unit to show the memory usage. Can be set to 'b'(ytes), 'k'(ilobytes), 'm'(egabytes) or 'auto' (the default).
    • new property 'format_inheritance', defaults to "lines", a shiny and much clearer new way to displays methods per inherited package. You may also set it to 'string' to preserve the old behaviour.
    • inheritance tree is considered when filtering objects unless you disable it with 'parent_filters => 0' (Ovid)
    • new option 'stringify' (default: 1) will return the stringified version of the object, if one is available. It will try overloaded strings/numbers, as_string() and stringify() calls, respectively. Note that this will efectivelly ignore all other class details you may have chosen. (Sergey Aleynikov, Benct Philip Jonsson)
    • new option show_overloads (default: 1) will list all overloads from the object's class.
    • the standard class filter is now able to show internals in blessed subs
    • support for faster natural sorting via Sort::Key::Natural if the user has it installed (feature request by @grr on github)
  • BUG FIXES:
    • fix array subelement alignment when index is shown (GARU)
    • show UNIVERSAL in linear ISA if it's on (GARU)
    • use "\n" instead of $/ as default line separator (Håkon Hægland && Chung-Kuan Tsai)
    • less magic added to internal Perl representation of variables (Jarrod Funnell, Sergey Aleynikov, Michael Conrad, Nicolas R.)
    • show_methods is now independent from show_inherited, meaning you can check all inherited methods and no local ones, or any combination thereof. This is the expected behaviour from the documentation, but was not happening.

Documentation

Modules

DDP
Data::Printer shortcut for faster debugging
colored & full-featured pretty-print of Perl data structures and objects
Load run-control (.dataprinter) files for Data::Printer
Create powerful stand-alone filters for Data::Printer
detect popular (binary) content in strings
pretty-printing database objects (DBI, DBIx::Class, etc)
pretty-printing date and time objects (not just DateTime!)
pretty-printing MD5, SHA and many other digests
pretty-printing of HTTP/JSON/LWP/Plack/Dancer/Catalyst/Mojo...
underlying object for Data::Printer
create your own color themes for DDP!
Classic DDP color theme for nostalgic users
Material theme for DDP
Monokai theme for DDP
Solarized theme for DDP

Provides

in lib/Data/Printer/Common.pm
in lib/Data/Printer/Filter/ARRAY.pm
in lib/Data/Printer/Filter/CODE.pm
in lib/Data/Printer/Filter/FORMAT.pm
in lib/Data/Printer/Filter/GLOB.pm
in lib/Data/Printer/Filter/GenericClass.pm
in lib/Data/Printer/Filter/HASH.pm
in lib/Data/Printer/Filter/REF.pm
in lib/Data/Printer/Filter/Regexp.pm
in lib/Data/Printer/Filter/SCALAR.pm
in lib/Data/Printer/Filter/VSTRING.pm