FileHandle::Unget is a drop-in replacement for FileHandle which
allows more than one byte to be placed back on the input. It supports
an ungetc(ORD) which can be called more than once in a row, and an
ungets(SCALAR) which places a string of bytes back on the input.

Homepage:
http://search.cpan.org/dist/FileHandle-Unget/
