Chapter 1. Syntax
1.8. Files
To do file io using core Perl use the
open()
and close()
functions.
Another common solution which is simpler, less quirky, and object oriented is to use
Path::Tiny.
Creating Path::Tiny objects
use Path::Tiny;
my $dir = path("/tmp");
my $file = path("foo.txt");
Navigating the filesystem
my $subdir = $dir->child("foo");
my $file = $subdir->child("bar.txt");
# Reading directories
for ( $dir->children ) { ... }
my $iter = $dir->iterator;
while ( my $next = $iter->() ) { ... }
Reading files
my $file = path("./foo.txt");
# Read the entire file into a string
my $contents = $file->slurp;
my $contents = $file->slurp_utf8;
# Each line of the file is an item in the array
my @lines = $file->lines;
my @lines = $file->lines_utf8;
my ($head) = $file->lines( {count => 1} );
my ($tail) = $file->lines( {count => -1} );
Writing files
my $file = path("./foo.txt");
$file->spew( @data );
$file->spew_utf8( @data );
Stringifies as cleaned up path
my $foo_file = path("./foo.txt");
print $foo_file; # "foo.txt"
For more info
Thats just an introduction. There is more. See the documentation for details.