On the heavy side, Fuse::Simple
lets you map a file system to Perl hashes.
FUSE is implemented at the OS level rather than being Perl specific. it doesn't require root access, but does need a server process (or at least a thread).
The files are really mounted and are visible to Perl and other processes. It's a deeper abstraction which may or may not be what you want.
As a final catch, the underlaying Fuse module claims to only work well under Linux or BSD. FUSE however is widely available on other platforms, including Windows.
I just thought it might be of interest. See also the wikipedia entry Filesystem_in_Userspace.