Here's another version:
sub readfile {
local $/="" unless wantarray;
return open(FS, shift) ? <FS> : undef;
}
No 'my' variables, handles both string and
array requests, and returns undef if the file
could not be opened. Use it like this:
defined($slurp = &readfile($file)) or die "Could not open $file: $!\n"
+;
print "Scalar 'slurp' now has ", length $slurp, " characters in it\n";
defined(@slurp = &readfile($file)) or die "Could not open $file: $!\n"
+;
print "Array 'slurp' now has ", $#slurp, " elements in it.\n";