package Store7;use base Exporter;@EXPORT=qw/store retrieve/;sub retrieve{do$_[0
]}sub E{$_=pop;s/\\/\\\\/g;s/'/\\'/g;"'$_'"}sub d{my$e=ref(my$f=pop);"SCALAR"eq
$e?E$$f:"ARRAY"eq$e?"[".join(',',map{d($_)}@$f)."]":"HASH"eq$e?"{".join(',',map
{E($_),d($f->{$_})}keys%$f)."}":E$f}local*F;sub store{open F,">".pop;print F d
pop;close F}1

・明示的に close しないとバッファに溜まったデータが print されない為、
 store 直後に retrieve できない。
・Perl 5.005_03 では do pop が出来なかったので、do $_[0] のままに。