$! = bad handle; if the handle is bad, return undef; $! = bad permissions; if don't have read permissions, return undef; $! = read error; if can't read from the handle, return undef; return line read;