=pod
=head1 NAME
AnyData::Storage::File -- manipulate files with rich warnings
=head1 DESCRIPTION
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
=head1 SYNOPSIS
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+ =
=head1 new()
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)
=head1 open_local_file( $fname, $mode );
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.
=cut