- open(FILE,"<$file") or die "Can't open $file: $!";
- my($string)=join('',<FILE>); #can $string have newlines? pry not?
- close FILE or die "Can't close $file: $!";
- my($self)=thaw $string;
- #no bless needed?
+
+ my $self;
+
+ #first try Storable
+ eval { $self = Storable::retrieve($file); };
+
+ if ( $@ && $@ =~ /not.*storable/i ) { #then try FreezeThaw
+ eval "use FreezeThaw;";
+ die $@ if $@;
+ open(FILE,"<$file") or die "Can't open $file: $!";
+ my $string = join('',<FILE>);
+ close FILE or die "Can't close $file: $!";
+ ($self) = FreezeThaw::thaw($string);
+ }
+