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";
Terse をセットすると最初に出てくる変数($VAR1など)が出なくなり、% 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
Indent をオフにするとインデントや改行がなくなる。see perldoc
参考:
- Data::Dumper - perlデータ構造の出力/eval両用文字列化
http://fleur.hio.jp/perldoc/mix/lib/Data/Dumper.ja.html
この記事に言及しているこのブログ内の記事