sub io { # usage: # @array = io('read',$file) # $string = io('read',$file) # io('write',$file,$string) # io('write',$file,\@array) # io('write',$file,$ref,'name') my($bit,$file,$data) = @_; if($bit eq 'read'){ open IO,"< $file" or die "Cannot open $file for input: $!\n"; my@file = ; close IO; wantarray ? return @file : return join '', @file; } if($bit eq 'write'){ open IO,"> $file" or die "Cannot open $file for output: $!\n"; print IO $data unless ref $data || $name; print IO @$data if ref $data eq 'ARRAY'; # print IO Data::Dumper->new([$data],[$name])->Indent(2)->Quotekeys(0)->Dump if $name; close IO; } }