slurp takes: * a filename, * a filehandle, * a typeglob reference, * an IO::File object, or * a scalar reference, converts it to an input stream if necessary, and reads in the entire stream. If slurp fails to set up or read the stream, it throws an exception.