documentation is imprecise, and does not take into account edge cases. api is designed to return undef, even in list context, rather than (). test suite is far from complete. bugs exist when using IO::File objects, and they're completely untested.