NAME File::Object - Object system for filesystem paths. SYNOPSIS use File::Object; my $obj = File::Object->new(%parameters); my $self = $obj->dir(@dir); my $self = $obj->file(@file_path); my $dir = $obj->get_dir($dir_num); my $file = $obj->get_file; my $self = $obj->reset; my $path = $obj->s; my $self = $obj->set; my $self = $obj->up($num); METHODS "new" my $obj = File::Object->new(%parameters); Constructor. Returns instance of object. * "dir" Directory path in reference to array. Default value is []. * "file" File path. Default value is undef. * "type" Type of path. Types: - file - dir Default value is 'dir'. "dir" my $self = $obj->dir(@dir); Add directory or directories to object. Returns instance of object. "file" my $self = $obj->file(@file_path); Add file or directory/directories with file to object. Returns instance of object. "get_dir" my $dir = $obj->get_dir($dir_num); Default value of $dir_num is 1. Returns $dir_num level directory. "get_file" my $file = $obj->get_file; Returns: - Filename if object is file path. - undef if object is directory path. "reset" my $self = $obj->reset; Reset to constructor values. Returns instance of object. "s" my $path = $obj->s; Serialize path and return. Returns string. "set" my $self = $obj->set; Set actual values to constructor values. Returns instance of object. "up" my $self = $obj->up($num); Go to $up_num upper directory. Returns instance of object. ERRORS new(): 'dir' parameter must be a reference to array. Bad 'type' parameter. Bad file constructor with undefined 'file' parameter. From Class::Utils::set_params(): Unknown parameter '%s'. up(): Cannot go up. PATH -> path; EXAMPLE1 use strict; use warnings; use File::Object; # Print actual directory path. print File::Object->new->s."\n"; # Output which runs from /usr/local/bin: # /usr/local/bin EXAMPLE2 use strict; use warnings; use File::Object; # Print parent directory path. print File::Object->new->up->s."\n"; # Output which runs from /usr/local/bin: # /usr/local EXAMPLE3 use strict; use warnings; use File::Object; # Object with directory path. my $obj = File::Object->new( 'dir' => ['path', 'to', 'subdir'], ); # Relative path to file1. print $obj->file('file1')->s."\n"; # Relative path to file2. print $obj->file('file2')->s."\n"; # Output: # Unix: # path/to/subdir/file1 # path/to/subdir/file2 # Windows: # path\to\subdir\file1 # path\to\subdir\file2 EXAMPLE4 use strict; use warnings; use File::Object; # Object with directory path. my $obj = File::Object->new( 'dir' => ['path', 'to', 'subdir'], ); # Relative path to dir1. print $obj->dir('dir1')->s."\n"; # Relative path to dir2. print $obj->reset->dir('dir2')->s."\n"; # Output: # Unix: # path/to/subdir/dir1 # path/to/subdir/dir2 # Windows: # path\to\subdir\dir1 # path\to\subdir\dir2 DEPENDENCIES Class::Utils, Error::Pure, FindBin, File::Spec::Functions. SEE ALSO File::Spec portably perform operations on file names Path::Class Cross-platform path specification manipulation REPOSITORY AUTHOR Michal Josef Špaček LICENSE AND COPYRIGHT © Michal Josef Špaček 2009-2021 BSD 2-Clause License VERSION 0.12