Normally, I prefer to just use the "ref for filename" version of open available in perl 5.8, but I'm often stuck working in perl 5.6, where this module can do just what you need. I've used it time and time again to replace passed-around filehandles with IO::String objects containing data retrieved in some other way.
This is very similar to another class IO::Scalar that comes in the io-stringy package of handle-munging modules.
But having used both extensively, let me say that this is FAR more accurate. It looks and acts exactly like an IO::Handle, even to the point of correct seeking and seek-after-end automated-null-inserts behavior.
IO::Scalar has a number of ugly things that means it doesn't behave like an IO::Handle when you really really need it to be exactly like a real handle.
So don't use IO::Scalar, use this. It seriously kicks ass.