package MooseX::Storage::IO::StorableFile;
use Moose::Role;
-use Storable ();
-
requires 'pack';
requires 'unpack';
sub load {
my ( $class, $filename, @args ) = @_;
+
+ require Storable;
+
# try thawing
return $class->thaw( Storable::retrieve($filename), @args )
if $class->can('thaw');
sub store {
my ( $self, $filename, @args ) = @_;
+
+ require Storable;
+
Storable::nstore(
# try freezing, otherwise just pack
($self->can('freeze') ? $self->freeze(@args) : $self->pack(@args)),