File::Fu::File - a filename object
use File::Fu; my $file = File::Fu->file("path/to/file"); $file %= '.extension'; $file->e and warn "$file exists"; $file->l and warn "$file is a link to ", $file->readlink;
my $file = File::Fu::File->new($path); my $file = File::Fu::File->new(@path);
my $file = File::Fu::File->new_direct( dir => $dir_obj, file => $name );
Return the corresponding dir class for this file object.
my $dc = $class->dir_class;
Always false for a file.
Always true for a file.
Returns a new object representing only the file part of the name.
my $obj = $file->basename;
my $string = $file->stringify;
Append a string only to the filename part.
$file->append('.gz'); $file %= '.gz';
(Yeah... I tried to use .=, but overloading hates me.)
$file->map(sub {...}); $file &= sub {...};
Get an absolute name (without checking the filesystem.)
my $abs = $file->absolute;
Get an absolute name (resolved on the filesytem.)
my $abs = $file->absolutely;
Open the file with $mode ('<', 'r', '>', 'w', etc) -- see IO::File.
my $fh = $file->open($mode, $permissions);
Throws an error if anything goes wrong or if the resulting filehandle happens to be a directory.
Opens a read pipe. The file is appended to @command.
my $fh = $file->piped_open(@command);
Update the timestamp of a file (or create it.)
$file->touch;
my $link = $file->link($name);
my $link = $file->symlink($linkname);
Note that symlinks are relative to where they live.
my $dir = File::Fu->dir("foo"); my $file = $dir+'file'; # $file->symlink($dir+'link'); is a broken link my $link = $file->basename->symlink($dir+'link');
$file->unlink;
my $to = $file->readlink;
Read the entire file into memory (or swap!)
my @lines = $file->read; my $file = $file->read;
If File::Slurp is available, options to read_file will be passed along. See "read_file" in File::Slurp.
Write the file's contents.
$file->write($content);
If File::Slurp is available, $content may be either a scalar, scalar ref, or array ref.
$file->write($content, %args);
$file->copy($dest);
Eric Wilhelm @ <ewilhelm at cpan dot org>
http://scratchcomputing.com/
If you found this module on CPAN, please report any bugs or feature requests through the web interface at http://rt.cpan.org. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
If you pulled this development version from my /svn/, please contact me directly.
Copyright (C) 2008 Eric L. Wilhelm, All Rights Reserved.
Absolutely, positively NO WARRANTY, neither express or implied, is offered with this software. You use this software at your own risk. In case of loss, no person or entity owes you anything whatsoever. You have been warned.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install File::Fu, copy and paste the appropriate command in to your terminal.
cpanm
cpanm File::Fu
CPAN shell
perl -MCPAN -e shell install File::Fu
For more information on module installation, please visit the detailed CPAN module installation guide.