[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