Opens, reads from, writes to, creates and destroys files with numerous options for error handling, flocking, binmode, etc.
The simplest form is the equivalent of
my $f = AnyData::Storage::File->new(dirs=>\@dirs,flock=>1); my $str1 = $f->adSlurp($file);
for( @dirs ) { open(IN,$file) or die $!; } sub slurp { local *IN; local $/ = undef; }
But, depending on how you set the default behaviour
use AnyData; my $f = AnyData::Storage::File->new; $f->set('binmode',1|0); $f->set('PrintError',1|0); $f->set('RaiseError',1|0); $f->set('Trace',1|0); $f->set('f_dir',$dir|$dir_array)
< input, fail if doesn't exist > output, truncate if exists, create if doesn't >> append, create if doesn't exist +< read/write, fail if doesn't exist
r = < r+ =
my $f = AnyData::Storage::File->new;
or
my $f = AnyData::Storage::File->new( %flags );
%flags is a hash which can contain any or all of:
f_dir => $directory, # defaults to './' ( binmode => $binmode, # defaults to 0 (doesn't binmode files) printError => $warnings, # defaults to 1 (print warning on errors) Mode is one of
a = append open for reading & writing, create if doesn't exist r = read open for reading, fail if doesn't exist u = open open for reading & writing, fail if doesn't exist c = create open for reading & writing, fail if it already exists o = overwrite open for reading & writing, overwrite if it already exists
Additionally, all modes fail if the file can't be opened. On systems that support flock, 'r' fails if a shared lock can not be obtained; the other modes fail if an exclusive lock can't be obtained.