I use File::Slurp because then I can write
read_file( ... ) instead of
do { local @ARGV = ...; local $/; scalar <> ]. The former is easier to read. I also don't typically write my own read_file because when I do, it often comes out to about a dozen lines and I'd prefer to let modules handle plumbing tasks that would otherwise just be clutter. I also share
ysth's inability to remember which of $/ and $\ controls the EOL for readline and the EOL for print.