File::At ======== File::At is a thin FFI::Platypus wrapper around the POSIX "at" family of filesystem syscalls (openat, fstatat, unlinkat, mkdirat, linkat, etc.). It exposes: - constants like AT_FDCWD, AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR, ... - direct bindings to the underlying libc functions - a small helper object, File::At::Dir, which owns a directory fd - convenience helpers open_fd_at() and open_fh_at() for opening files relative to a directory fd Typical usage: use File::At qw(dir open_fh_at AT_FDCWD); use Fcntl qw(O_RDONLY); my $root = dir("/some/base"); my $fh = open_fh_at($root, "subdir/file.txt", O_RDONLY, 0); See eg/at_hardlink.pl for a more complete example: it walks two directory trees and, when files match by MD5, replaces the destination file with a hard link to the source using linkat().