NAME
Filesys::POSIX - Provide POSIX-like filesystem semantics in pure Perl
SYNOPSIS
use Filesys::POSIX
use Filesys::POSIX::Mem;
my $fs = Filesys::POSIX->new(Filesys::POSIX::Mem->new,
'noatime' => 1
);
$fs->umask(0700);
$fs->mkdir('foo');
my $fd = $fs->open('/foo/bar', $O_CREAT | $O_WRONLY);
my $inode = $fs->fstat($fd);
$fs->printf("I have mode 0%o\n", $inode->{'mode'});
$fs->close($fd);
DESCRIPTION
Filesys::POSIX provides a fairly complete suite of tools comprising the
semantics of a POSIX filesystem, with path resolution, mount points,
inodes, a VFS, and some common utilities found in the userland. Some
features not found in a normal POSIX environment include the ability to
perform cross- mountpoint hard links (aliasing), mapping portions of the
real filesystem into an instance of a virtual filesystem, and allowing
the developer to attach and replace inodes at arbitrary points with
replacements of their own specification.
Two filesystem types are provided out-of-the-box: A filesystem that
lives in memory completely, and a filesystem that provides a "portal" to
any given portion of the real underlying filesystem.
By and large, the manner in which data is structured is quite similar to
a real kernel filesystem implementation, with some differences: VFS
inodes are not created for EVERY disk inode (only mount points); inodes
are not referred to numerically, but rather by Perl reference; and,
directory entries can be implemented in a device-specific manner, as
long as they adhere to the normal interface specified within.
READ MORE
For further information, please consult the POD documentation for the
Filesys::POSIX module.