I prefer to use the Data::Dump module, since it has a simpler interface and it doesn't try to set any variables, which makes it more convenient to use in most cases. Here is a sample of writing a structure to a file and reading it back again using Data::Dump:
#!perl
use strict;
use warnings;
use Data::Dump qw(dump);
# Create a complex structure
my %hash = (
number => 42,
string => 'This is a string',
array => [ 1 .. 10 ],
hash => { apple => 'red', banana => 'yellow' },
);
# See what it looks like
print "Here is the structure before dumping to file:\n";
dump \%hash;
# Print structure to file
open my $out, '>', 'dump_struct' or die $!;
print {$out} dump \%hash;
close $out;
# Read structure back in again
open my $in, '<', 'dump_struct' or die $!;
my $data;
{
local $/; # slurp mode
$data = eval <$in>;
}
close $in;
# See what the structure read in looks like
print "Here is the structure after reading from file:\n";
dump $data;
__END__
|