The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Sweet::Dir

SYNOPSIS

use Sweet::Dir;

my $dir = Sweet::Dir->new(path => '/path/to/dir');
$dir->create;

say $dir; # /path/to/dir

ATTRIBUTES

path

METHODS

create

$dir->create;

does_not_exists

$dir->create if $dir->does_not_exists;

erase

$dir->erase;

file

Instance of file inside dir. Returns a Sweet::File by default.

my $file = $dir->file('foo.txt');
say $file; # /path/to/dir/foo.txt

Accepts an optional reference to a sub which expects $dir and $name parameters and will be called to build the object reference. For example

use Sweet::File::DSV;

my $file = $dir->file('bar.tsv', sub {
    my ( $dir, $name ) = @_;

    my $file = Sweet::File::DSV->new(
        dir  => $dir,
        name => $name,
        separator => "\t",
    );

    return $file;
});

file_list

Returns a list of files contained in the directory

my @files = @$dir->file_list;

is_a_directory

# Create dir if it does not exists.
$dir->is_a_directory or $dir->create;

sub_dir

my $dir2 = $dir->sub_dir('foo', bar');
# Or pass an arrayref if you prefer.
# my $dir2 = $dir->sub_dir(['foo', bar']);

# Create foo/bar sub directory.
$dir2->create;