Data::Dumper で eval するメモ
2006-10-24-2
[Programming]
Cache::File[2006-10-17-1]でStorebla[2006-05-09-2]を使いたいのだが、
できそうもないので(何か良い方法があったら教えて下さい。
追記: ありました!→[2006-10-24-6])、
Data::Dumper でシリアライズして読み書きすることにした。
サンプルプログラム:
Indent をオフにするとインデントや改行がなくなる。see perldoc
参考:
- Data::Dumper - perlデータ構造の出力/eval両用文字列化
http://fleur.hio.jp/perldoc/mix/lib/Data/Dumper.ja.html
できそうもないので(何か良い方法があったら教えて下さい。
追記: ありました!→[2006-10-24-6])、
Data::Dumper でシリアライズして読み書きすることにした。
サンプルプログラム:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
$Data::Dumper::Terse = 1;
$Data::Dumper::Indent = 0;
my $foo = [ 0, [1,2,3], "hello", {one => 1, two => 2} ];
my $text = Dumper($foo); # シリアライズ
print "\$foo = $text\n";
my $bar = eval $text; # もどす
print "\$bar = ", Dumper($bar), "\n";
print "test : ";
print $bar->[0], " ";
print join(",", @{$bar->[1]}), " ";
print $bar->[2], " ";
print join(",", map {"$_:$bar->[3]{$_}"} keys %{$bar->[3]}), "\n";
実行結果:
% perl dd.pl
$foo = [0,[1,2,3],'hello',{'one' => 1,'two' => 2}]
$bar = [0,[1,2,3],'hello',{'one' => 1,'two' => 2}]
test : 0 1,2,3 hello one:1,two:2
Terse をセットすると最初に出てくる変数($VAR1など)が出なくなり、Indent をオフにするとインデントや改行がなくなる。see perldoc
参考:
- Data::Dumper - perlデータ構造の出力/eval両用文字列化
http://fleur.hio.jp/perldoc/mix/lib/Data/Dumper.ja.html
この記事に言及しているこのブログ内の記事
