IO::Callback provides an easy way to produce a phoney read-only
filehandle that calls back to your own code when it needs data to
satisfy a read.  This is useful if you want to use a library module
that expects to read data from a filehandle, but you want the data to
come from some other source and you don't want to read it all into
memory and use IO::String.

WWW: http://search.cpan.org/dist/IO-Callback/