Perlゼミ

Dモジュール - データをエンコードし標準エラー出力へダンプ

Dモジュールは、データをエンコードし標準エラー出力へダンプするユーティリティ関数を提供します。

利用例

Dモジュールは、以下のように利用します。

use utf8;
 
# du, dw, dn, dustr, dwstr, dnstr関数をexportします
use D;
 
# デコードされた文字列を含むデータ(リファレンス)を準備します
my $data = [{name => 'あ'}, {name => 'い'}];
 
# リファレンスデータをエンコード(UTF-8)し、標準エラー出力へダンプします。
du $data;

# リファレンスデータをエンコード(cp932)し、標準エラー出力へダンプします。
dw $data;

# リファレンスデータをエンコードせず、標準エラー出力へダンプします。
dn $data;

# 便利なOnelinerの例です。
use D;du $data;
use D;dw $data;
use D;dn $data;

# du関数の出力サンプルです。
[
  {
    'name' => 'あ'
  },
  {
    'name' => 'い'
  }
] at test.pl line 7.

特徴

  • du, dw, dnなどの関数をエクスポートします。これらの関数名は、2文字のため'p' などのデバックコマンドと競合しないでください。
  • dustr, dwstr関数はリファレンスデータの全ての文字列をエンコードします。
  • duは'dump UTF-8'の短縮名です。
  • dwは'dump Windows cp932'の短縮名です。
  • dnは'dump no encoding'の短縮名です。
  • Data::DumperのDump関数を使用してデータをダンプします。
  • 行番号とファイル名を標準エラーへ出力します。
  • ダンプされたデータのハッシュのキーでソートします。
  • Data::Dumperのデフォルトとは異なり、'$VAR1 ='を出力しません。

関数

du関数

リファレンスデータ内のすべての文字列をUTF-8にエンコードし、リファレンスデータをファイル名, 行番号とともに標準エラー出力へダンプします。

引数が文字列などの参照データでない場合も、リファレンスデータと同じ方法でダンプされます。

この関数はexportされます。

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

以下の例ではワンライナーを使用しています。全ての関数で利用できます。

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

dw関数

リファレンスデータ内のすべての文字列をcp932にエンコードし、リファレンスデータをファイル名, 行番号とともに標準エラー出力へダンプします。

引数が文字列などの参照データでない場合も、リファレンスデータと同じ方法でダンプされます。

この関数はexportされます。

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

dn関数

リファレンスデータ内のすべての文字列をエンコードせず、リファレンスデータをファイル名, 行番号とともに標準エラー出力へダンプします。

引数が文字列などの参照データでない場合も、リファレンスデータと同じ方法でダンプされます。

この関数はexportされます。

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

dustr関数

この関数はUTF-8でエンコードされた文字列を返します。

この関数はexportされます。

以下の例は、UTF-8でエンコードされた文字列を取得しています。

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

dwstr関数

この関数はcp932でエンコードされた文字列を返します。

この関数はexportされます。

以下の例は、cp932でエンコードされた文字列を取得しています。

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

dnstr関数

この関数はエンコードせずに文字列を返します。

この関数はexportされます。

以下の例は、エンコードされない文字列を取得しています。

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

バグレポート

https://github.com/YoshiyukiItoh/D

関連項目

元ページ(meta::cpan)

https://metacpan.org/pod/D

Perlプログラミングちゃんねるのご紹介

Perlの書籍
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
    この私、Perlゼミの作者が執筆しています。
    ご購入、口コミ歓迎。
  • Perlの書籍 »
自己紹介
木本裕紀

「今日も元気だ! Perlで元気!」

Perlプログラミングちゃんねる

Youtubeチャンネル登録、いいね、コメント歓迎

Twitter
フォロー、いいね、リツート、コメント歓迎

kimoto.yuki@gmail.com
応援メッセージ、質問、間違い報告歓迎

Perl総合研究所