[Moscow.pm] Надо кому ?
Ivan B. Serezhkin
ivan на serezhkin.com
Вт Май 20 06:20:53 PDT 2008
=head1 NAME
StorableHash - Hash with a ability to be a persistent
=head1 SYNOPSYS
my $persistent = new StorableHash('data',{});
die;
=head1 AUTHOR
Vany Serehhkin
=cut
package StorableHash;
use strict;
use Storable qw(nstore retrieve);
our %fnames;
sub new {
my ($class,$fname,$constr)=@_;
die "Must be a hash" if $constr and ref($constr) ne 'HASH';
die "Must Have a name" unless $fname;
my $hash= (-f $fname && retrieve($fname)) || $constr || {};
my $obj=bless $hash, $class;
$fnames{$obj}=$fname;
return $obj;
}
sub DESTROY {
my $self=shift;
nstore($self,$fnames{$self}||die 'FNAME!');
}
1;
--
Ivan B. Serezhkin
Подробная информация о списке рассылки Moscow-pm