The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

D - Provides utility functions to encode data and dump it to STDERR.

SYNOPSIS

  use utf8;
  
  # Export du, dw, de, dn, dustr, dwstr, destr, dnstr functions
  use D;
  
  # Reference data that contains decoded strings
  my $data = [{name => 'あ'}, {name => 'い'}];
  
  # Encode all strings in reference data to UTF-8 and dump the reference data to STDERR.
  du $data;

  # Encode all strings in reference data to cp932 and dump the reference data to STDERR.
  dw $data;

  # Encode all strings in reference data to EUC-JP and dump the reference data to STDERR.
  de $data;

  # Dump reference data to STDERR without encoding.
  dn $data;

  # Examples of useful oneliner.
  use D;du $data;
  use D;dw $data;
  use D;de $data;
  use D;dn $data;

  # Output example of du function.
  [
    {
      'name' => 'あ'
    },
    {
      'name' => 'い'
    }
  ] at test.pl line 7.

DESCRIPTION

D module provides utility functions to encode data and dump it to STDERR.

FEATURES

  • Export du, dw, de, and dn functions. Don't conflict debug command such as 'p' because these function names are consist of two characters.

  • Encode all strings in reference data in dustr, dwstr, and destr function.

  • du is a short name of "dump UTF-8"

  • dw is a short name of "dump Windows cp932"

  • de is a short name of "dump EUC-JP"

  • dn is a short name of "dump no encoding"

  • Use Dump method of Data::Dumper to dump data

  • Print line number and file name to STDERR

  • Keys of hash of dumped data is sorted.

  • Don't print "$VAR1 =" unlike Data::Dumper default.

FUNCTIONS

du

Encode all strings in reference data to UTF-8 and return string the reference data with file name and line number.

If the argument is not reference data such as a string, it is also dumped in the same way as reference data.

This function is exported.

  use D;
  my $data = [{name => 'あ'}, {name => 'い'}];
  du $data;

Following example is oneliner used. It can be used all functions.

  my $data = [{name => 'あ'}, {name => 'い'}];
  use D;du $data;

dw

Encode all strings in reference data to cp932 and dump the reference data to STDERR with file name and line number.

If the argument is not reference data such as a string, it is also dumped in the same way as reference data.

This function is exported.

  use D;
  my $data = [{name => 'あ'}, {name => 'い'}];
  dw $data;

de

Encode all strings in reference data to EUC-JP and dump the reference data to STDERR with file name and line number.

If the argument is not reference data such as a string, it is also dumped in the same way as reference data.

This function is exported.

  use D;
  my $data = [{name => 'あ'}, {name => 'い'}];
  de $data;

dn

Dump reference data to STDERR without encoding with file name and line number.

If the argument is not reference data such as a string, it is also dumped in the same way as reference data.

This function is exported.

  use D;
  my $data = [{name => 'あ'}, {name => 'い'}];
  dn $data;

dustr

This function is return that UTF-8 encoded string.

This function is exported.

Following example is get the UTF-8 encoded string.

  use D;
  my $data = [{name => 'あ'}, {name => 'い'}];
  my $str = dustr $data;

dwstr

This function is return that cp932 encoded string.

This function is exported.

Following example is get the cp932 encoded string.

  use D;
  my $data = [{name => 'あ'}, {name => 'い'}];
  my $str = dwstr $data;

destr

This function is return that EUC-JP encoded string.

This function is exported.

Following example is get the EUC-JP encoded string.

  use D;
  my $data = [{name => 'あ'}, {name => 'い'}];
  my $str = destr $data;

dnstr

This function is return that without encoded string.

This function is exported.

Following example is get the without encoded string.

  use D;
  my $data = [{name => 'あ'}, {name => 'い'}];
  my $str = dnstr $data;

Bug Report

https://github.com/YoshiyukiItoh/D

SEE ALSO

Data::Dumper, Carp, Data::Recursive::Encode

AUTHOR

Yoshiyuki Ito, <yoshiyuki.ito.biz@gmail.com>

Yuki Kimoto, <kimoto.yuki@gmail.com>

COPYRIGHT AND LICENSE

Copyright (C) 2019 by Yoshiyuki Ito, Yuki Kimoto

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.08.7 or, at your option, any later version of Perl 5 you may have available.