Venus::Path - Path Class
Path Class for Perl 5
package main; use Venus::Path; my $path = Venus::Path->new('t/data/planets'); # my $planets = $path->files; # my $mercury = $path->child('mercury'); # my $content = $mercury->read;
This package provides methods for working with file system paths.
This package inherits behaviors from:
Venus::Kind::Utility
This package integrates behaviors from:
Venus::Role::Accessible
Venus::Role::Buildable
Venus::Role::Explainable
Venus::Role::Valuable
This package provides the following methods:
absolute() (Path)
The absolute method returns a path object where the value (path) is absolute.
Since 0.01
0.01
# given: synopsis; $path = $path->absolute; # bless({ value => "/path/to/t/data/planets" }, "Venus::Path")
basename() (Str)
The basename method returns the path base name.
# given: synopsis; my $basename = $path->basename; # planets
child(Str $path) (Path)
The child method returns a path object representing the child path provided.
# given: synopsis; $path = $path->child('earth'); # bless({ value => "t/data/planets/earth" }, "Venus::Path")
children() (ArrayRef[Path])
The children method returns the files and directories under the path. This method can return a list of values in list-context.
# given: synopsis; my $children = $path->children; # [ # bless({ value => "t/data/planets/ceres" }, "Venus::Path"), # bless({ value => "t/data/planets/earth" }, "Venus::Path"), # bless({ value => "t/data/planets/eris" }, "Venus::Path"), # bless({ value => "t/data/planets/haumea" }, "Venus::Path"), # bless({ value => "t/data/planets/jupiter" }, "Venus::Path"), # bless({ value => "t/data/planets/makemake" }, "Venus::Path"), # bless({ value => "t/data/planets/mars" }, "Venus::Path"), # bless({ value => "t/data/planets/mercury" }, "Venus::Path"), # bless({ value => "t/data/planets/neptune" }, "Venus::Path"), # bless({ value => "t/data/planets/planet9" }, "Venus::Path"), # bless({ value => "t/data/planets/pluto" }, "Venus::Path"), # bless({ value => "t/data/planets/saturn" }, "Venus::Path"), # bless({ value => "t/data/planets/uranus" }, "Venus::Path"), # bless({ value => "t/data/planets/venus" }, "Venus::Path"), # ]
chmod(Str $mode) (Path)
The chmod method changes the file permissions of the file or directory.
# given: synopsis; $path = $path->chmod(0755); # bless({ value => "t/data/planets" }, "Venus::Path")
chown(Str @args) (Path)
The chown method changes the group and/or owner or the file or directory.
# given: synopsis; $path = $path->chown(-1, -1); # bless({ value => "t/data/planets" }, "Venus::Path")
copy(Str | Path $path) (Path)
The copy method uses "copy" in File::Copy to copy the file represented by the invocant to the path provided and returns the invocant.
Since 2.80
2.80
# given: synopsis package main; my $copy = $path->child('mercury')->copy($path->child('yrucrem')); # bless({...}, 'Venus::Path')
default() (Str)
The default method returns the default value, i.e. $ENV{PWD}.
$ENV{PWD}
# given: synopsis; my $default = $path->default; # $ENV{PWD}
directories() (ArrayRef[Path])
The directories method returns a list of children under the path which are directories. This method can return a list of values in list-context.
# given: synopsis; my $directories = $path->directories; # []
exists() (Bool)
The exists method returns truthy or falsy if the path exists.
# given: synopsis; my $exists = $path->exists; # 1
# given: synopsis; my $exists = $path->child('random')->exists; # 0
explain() (Str)
The explain method returns the path string and is used in stringification operations.
# given: synopsis; my $explain = $path->explain; # t/data/planets
extension(Str $name) (Str | Path)
The extension method returns a new path object using the extension name provided. If no argument is provided this method returns the extension for the path represented by the invocant, otherwise returns undefined.
Since 2.55
2.55
package main; use Venus::Path; my $path = Venus::Path->new('t/Venus_Path.t'); my $extension = $path->extension; # "t"
package main; use Venus::Path; my $path = Venus::Path->new('t/data/mercury'); my $extension = $path->extension('txt'); # bless({ value => "t/data/mercury.txt"}, "Venus::Path")
package main; use Venus::Path; my $path = Venus::Path->new('t/data'); my $extension = $path->extension; # undef
package main; use Venus::Path; my $path = Venus::Path->new('t/data'); my $extension = $path->extension('txt'); # bless({ value => "t/data.txt"}, "Venus::Path")
files() (ArrayRef[Path])
The files method returns a list of children under the path which are files. This method can return a list of values in list-context.
# given: synopsis; my $files = $path->files; # [ # bless({ value => "t/data/planets/ceres" }, "Venus::Path"), # bless({ value => "t/data/planets/earth" }, "Venus::Path"), # bless({ value => "t/data/planets/eris" }, "Venus::Path"), # bless({ value => "t/data/planets/haumea" }, "Venus::Path"), # bless({ value => "t/data/planets/jupiter" }, "Venus::Path"), # bless({ value => "t/data/planets/makemake" }, "Venus::Path"), # bless({ value => "t/data/planets/mars" }, "Venus::Path"), # bless({ value => "t/data/planets/mercury" }, "Venus::Path"), # bless({ value => "t/data/planets/neptune" }, "Venus::Path"), # bless({ value => "t/data/planets/planet9" }, "Venus::Path"), # bless({ value => "t/data/planets/pluto" }, "Venus::Path"), # bless({ value => "t/data/planets/saturn" }, "Venus::Path"), # bless({ value => "t/data/planets/uranus" }, "Venus::Path"), # bless({ value => "t/data/planets/venus" }, "Venus::Path"), # ]
find(Str | Regexp $expr) (ArrayRef[Path])
The find method does a recursive depth-first search and returns a list of paths found, matching the expression provided, which defaults to *. This method can return a list of values in list-context.
*
# given: synopsis; my $find = $path->find; # [ # bless({ value => "t/data/planets/ceres" }, "Venus::Path"), # bless({ value => "t/data/planets/earth" }, "Venus::Path"), # bless({ value => "t/data/planets/eris" }, "Venus::Path"), # bless({ value => "t/data/planets/haumea" }, "Venus::Path"), # bless({ value => "t/data/planets/jupiter" }, "Venus::Path"), # bless({ value => "t/data/planets/makemake" }, "Venus::Path"), # bless({ value => "t/data/planets/mars" }, "Venus::Path"), # bless({ value => "t/data/planets/mercury" }, "Venus::Path"), # bless({ value => "t/data/planets/neptune" }, "Venus::Path"), # bless({ value => "t/data/planets/planet9" }, "Venus::Path"), # bless({ value => "t/data/planets/pluto" }, "Venus::Path"), # bless({ value => "t/data/planets/saturn" }, "Venus::Path"), # bless({ value => "t/data/planets/uranus" }, "Venus::Path"), # bless({ value => "t/data/planets/venus" }, "Venus::Path"), # ]
# given: synopsis; my $find = $path->find('[:\/\\\.]+m[^:\/\\\.]*$'); # [ # bless({ value => "t/data/planets/makemake" }, "Venus::Path"), # bless({ value => "t/data/planets/mars" }, "Venus::Path"), # bless({ value => "t/data/planets/mercury" }, "Venus::Path"), # ]
# given: synopsis; my $find = $path->find('earth'); # [ # bless({ value => "t/data/planets/earth" }, "Venus::Path"), # ]
glob(Str | Regexp $expr) (ArrayRef[Path])
The glob method returns the files and directories under the path matching the expression provided, which defaults to *. This method can return a list of values in list-context.
# given: synopsis; my $glob = $path->glob; # [ # bless({ value => "t/data/planets/ceres" }, "Venus::Path"), # bless({ value => "t/data/planets/earth" }, "Venus::Path"), # bless({ value => "t/data/planets/eris" }, "Venus::Path"), # bless({ value => "t/data/planets/haumea" }, "Venus::Path"), # bless({ value => "t/data/planets/jupiter" }, "Venus::Path"), # bless({ value => "t/data/planets/makemake" }, "Venus::Path"), # bless({ value => "t/data/planets/mars" }, "Venus::Path"), # bless({ value => "t/data/planets/mercury" }, "Venus::Path"), # bless({ value => "t/data/planets/neptune" }, "Venus::Path"), # bless({ value => "t/data/planets/planet9" }, "Venus::Path"), # bless({ value => "t/data/planets/pluto" }, "Venus::Path"), # bless({ value => "t/data/planets/saturn" }, "Venus::Path"), # bless({ value => "t/data/planets/uranus" }, "Venus::Path"), # bless({ value => "t/data/planets/venus" }, "Venus::Path"), # ]
is_absolute() (Bool)
The is_absolute method returns truthy or falsy is the path is absolute.
# given: synopsis; my $is_absolute = $path->is_absolute; # 0
is_directory() (Bool)
The is_directory method returns truthy or falsy is the path is a directory.
# given: synopsis; my $is_directory = $path->is_directory; # 1
is_file() (Bool)
The is_file method returns truthy or falsy is the path is a file.
# given: synopsis; my $is_file = $path->is_file; # 0
is_relative() (Bool)
The is_relative method returns truthy or falsy is the path is relative.
# given: synopsis; my $is_relative = $path->is_relative; # 1
lineage() (ArrayRef[Path])
The lineage method returns the list of parent paths up to the root path. This method can return a list of values in list-context.
# given: synopsis; my $lineage = $path->lineage; # [ # bless({ value => "t/data/planets" }, "Venus::Path"), # bless({ value => "t/data" }, "Venus::Path"), # bless({ value => "t" }, "Venus::Path"), # ]
lines(Str|Regexp $separator, Str $binmode) (ArrayRef[Str])
The lines method returns the list of lines from the underlying file. By default the file contents are separated by newline.
Since 1.23
1.23
# given: synopsis; my $lines = $path->child('mercury')->lines; # ['mercury']
# given: synopsis; my $lines = $path->child('planet9')->lines($^O =~ /win32/i ? "\n" : "\r\n"); # ['planet', 'nine']
mkcall(Any @data) (Any)
The mkcall method returns the result of executing the path as an executable. In list context returns the call output and exit code.
package main; use Venus::Path; my $path = Venus::Path->new($^X); my $output = $path->mkcall('--help'); # Usage: perl ...
package main; use Venus::Path; my $path = Venus::Path->new($^X); my ($call_output, $exit_code) = $path->mkcall('t/data/sun --heat-death'); # ("", 1)
package main; use Venus::Path; my $path = Venus::Path->new('.help'); my $output = $path->mkcall; # Exception! (isa Venus::Path::Error) (see error_on_mkcall)
mkdir(Maybe[Str] $mode) (Path)
The mkdir method makes the path as a directory.
package main; use Venus::Path; my $path = Venus::Path->new('t/data/systems'); $path = $path->mkdir; # bless({ value => "t/data/systems" }, "Venus::Path")
package main; use Venus::Path; my $path = Venus::Path->new('/path/to/xyz'); $path = $path->mkdir; # Exception! (isa Venus::Path::Error) (see error_on_mkdir)
mkdirs(Maybe[Str] $mode) (ArrayRef[Path])
The mkdirs method creates parent directories and returns the list of created directories. This method can return a list of values in list-context.
package main; use Venus::Path; my $path = Venus::Path->new('t/data/systems'); my $mkdirs = $path->mkdirs; # [ # bless({ value => "t/data/systems" }, "Venus::Path") # ]
package main; use Venus::Path; my $path = Venus::Path->new('t/data/systems/solar'); my $mkdirs = $path->mkdirs; # [ # bless({ value => "t/data/systems" }, "Venus::Path"), # bless({ value => "t/data/systems/solar" }, "Venus::Path"), # ]
mkfile() (Path)
The mkfile method makes the path as an empty file.
package main; use Venus::Path; my $path = Venus::Path->new('t/data/moon'); $path = $path->mkfile; # bless({ value => "t/data/moon" }, "Venus::Path")
package main; use Venus::Path; my $path = Venus::Path->new('/path/to/xyz'); $path = $path->mkfile; # Exception! (isa Venus::Path::Error) (see error_on_mkfile)
mktemp_dir() (Path)
The mktemp_dir method uses "tempdir" in File::Temp to create a temporary directory which isn't automatically removed and returns a new path object.
# given: synopsis package main; my $mktemp_dir = $path->mktemp_dir; # bless({value => "/tmp/ZnKTxBpuBE"}, "Venus::Path")
mktemp_file() (Path)
The mktemp_file method uses "tempfile" in File::Temp to create a temporary file which isn't automatically removed and returns a new path object.
# given: synopsis package main; my $mktemp_file = $path->mktemp_file; # bless({value => "/tmp/y5MvliBQ2F"}, "Venus::Path")
move(Str | Path $path) (Path)
The move method uses "move" in File::Copy to move the file represented by the invocant to the path provided and returns the invocant.
package main; use Venus::Path; my $path = Venus::Path->new('t/data'); my $unknown = $path->child('unknown')->mkfile->move($path->child('titan')); # bless({...}, 'Venus::Path')
name() (Str)
The name method returns the path as an absolute path.
# given: synopsis; my $name = $path->name; # /path/to/t/data/planets
open(Any @data) (FileHandle)
The open method creates and returns an open filehandle.
package main; use Venus::Path; my $path = Venus::Path->new('t/data/planets/earth'); my $fh = $path->open; # bless(..., "IO::File");
package main; use Venus::Path; my $path = Venus::Path->new('t/data/planets/earth'); my $fh = $path->open('<'); # bless(..., "IO::File");
package main; use Venus::Path; my $path = Venus::Path->new('t/data/planets/earth'); my $fh = $path->open('>'); # bless(..., "IO::File");
package main; use Venus::Path; my $path = Venus::Path->new('/path/to/xyz'); my $fh = $path->open('>'); # Exception! (isa Venus::Path::Error) (see error_on_open)
parent() (Path)
The parent method returns a path object representing the parent directory.
# given: synopsis; my $parent = $path->parent; # bless({ value => "t/data" }, "Venus::Path")
parents() (ArrayRef[Path])
The parents method returns is a list of parent directories. This method can return a list of values in list-context.
# given: synopsis; my $parents = $path->parents; # [ # bless({ value => "t/data" }, "Venus::Path"), # bless({ value => "t" }, "Venus::Path"), # ]
parts() (ArrayRef[Str])
The parts method returns an arrayref of path parts.
# given: synopsis; my $parts = $path->parts; # ["t", "data", "planets"]
read(Str $binmode) (Str)
The read method reads the file and returns its contents.
package main; use Venus::Path; my $path = Venus::Path->new('t/data/planets/mars'); my $content = $path->read;
package main; use Venus::Path; my $path = Venus::Path->new('/path/to/xyz'); my $content = $path->read; # Exception! (isa Venus::Path::Error) (see error_on_read_open)
relative(Str $root) (Path)
The relative method returns a path object representing a relative path (relative to the path provided).
package main; use Venus::Path; my $path = Venus::Path->new('/path/to/t/data/planets/mars'); my $relative = $path->relative('/path'); # bless({ value => "to/t/data/planets/mars" }, "Venus::Path")
package main; use Venus::Path; my $path = Venus::Path->new('/path/to/t/data/planets/mars'); my $relative = $path->relative('/path/to/t'); # bless({ value => "data/planets/mars" }, "Venus::Path")
rmdir() (Path)
The rmdir method removes the directory and returns a path object representing the deleted directory.
package main; use Venus::Path; my $path = Venus::Path->new('t/data/stars'); my $rmdir = $path->mkdir->rmdir; # bless({ value => "t/data/stars" }, "Venus::Path")
package main; use Venus::Path; my $path = Venus::Path->new('/path/to/xyz'); my $rmdir = $path->mkdir->rmdir; # Exception! (isa Venus::Path::Error) (see error_on_rmdir)
rmdirs() (ArrayRef[Path])
The rmdirs method removes that path and its child files and directories and returns all paths removed. This method can return a list of values in list-context.
package main; use Venus::Path; my $path = Venus::Path->new('t/data/stars'); $path->child('dwarfs')->mkdirs; my $rmdirs = $path->rmdirs; # [ # bless({ value => "t/data/stars/dwarfs" }, "Venus::Path"), # bless({ value => "t/data/stars" }, "Venus::Path"), # ]
rmfiles() (ArrayRef[Path])
The rmfiles method recursively removes files under the path and returns the paths removed. This method does not remove the directories found. This method can return a list of values in list-context.
package main; use Venus::Path; my $path = Venus::Path->new('t/data/stars')->mkdir; $path->child('sirius')->mkfile; $path->child('canopus')->mkfile; $path->child('arcturus')->mkfile; $path->child('vega')->mkfile; $path->child('capella')->mkfile; my $rmfiles = $path->rmfiles; # [ # bless({ value => "t/data/stars/arcturus" }, "Venus::Path"), # bless({ value => "t/data/stars/canopus" }, "Venus::Path"), # bless({ value => "t/data/stars/capella" }, "Venus::Path"), # bless({ value => "t/data/stars/sirius" }, "Venus::Path"), # bless({ value => "t/data/stars/vega" }, "Venus::Path"), # ]
root(Str $spec, Str $base) (Maybe[Path])
The root method performs a search up the file system heirarchy returns the first path (i.e. absolute path) matching the file test specification and base path expression provided. The file test specification is the same passed to "test". If no path matches are found this method returns underfined.
Since 2.32
2.32
# given: synopsis; my $root = $path->root('d', 't'); # bless({ value => "/path/to/t/../" }, "Venus::Path")
# given: synopsis; my $root = $path->root('f', 't'); # undef
seek(Str $spec, Str $base) (Maybe[Path])
The seek method performs a search down the file system heirarchy returns the first path (i.e. absolute path) matching the file test specification and base path expression provided. The file test specification is the same passed to "test". If no path matches are found this method returns underfined.
# given: synopsis; $path = Venus::Path->new('t'); my $seek = $path->seek('f', 'earth'); # bless({ value => "/path/to/t/data/planets/earth" }, "Venus::Path")
# given: synopsis; $path = Venus::Path->new('t'); my $seek = $path->seek('f', 'europa'); # undef
sibling(Str $path) (Path)
The sibling method returns a path object representing the sibling path provided.
# given: synopsis; my $sibling = $path->sibling('galaxies'); # bless({ value => "t/data/galaxies" }, "Venus::Path")
siblings() (ArrayRef[Path])
The siblings method returns all sibling files and directories for the current path. This method can return a list of values in list-context.
# given: synopsis; my $siblings = $path->siblings; # [ # bless({ value => "t/data/moon" }, "Venus::Path"), # bless({ value => "t/data/sun" }, "Venus::Path"), # ]
test(Str $expr) (Bool)
The test method evaluates the current path against the stackable file test operators provided.
# given: synopsis; my $test = $path->test; # -e $path # 1
package main; use Venus::Path; my $path = Venus::Path->new('t/data/sun'); my $test = $path->test('efs'); # -e -f -s $path # 1
unlink() (Path)
The unlink method removes the file and returns a path object representing the removed file.
package main; use Venus::Path; my $path = Venus::Path->new('t/data/asteroid')->mkfile; my $unlink = $path->unlink; # bless({ value => "t/data/asteroid" }, "Venus::Path")
package main; use Venus::Path; my $path = Venus::Path->new('/path/to/xyz'); my $unlink = $path->unlink; # Exception! (isa Venus::Path::Error) (see error_on_unlink)
write(Str $data, Str $binmode) (Path)
The write method write the data provided to the file.
package main; use Venus::Path; my $path = Venus::Path->new('t/data/asteroid'); my $write = $path->write('asteroid');
package main; use Venus::Path; my $path = Venus::Path->new('/path/to/xyz'); my $write = $path->write('nothing'); # Exception! (isa Venus::Path::Error) (see error_on_write_open)
This package may raise the following errors:
error_on_copy
This package may raise an error_on_copy exception.
example 1
# given: synopsis; my @args = ("/nowhere"); my $error = $path->throw('error_on_copy', @args)->catch('error'); # my $name = $error->name; # "on_copy" # my $message = $error->message; # "Can't copy \"t\/data\/planets\" to \"/nowhere\": $!" # my $path = $error->stash('path'); # "/nowhere" # my $self = $error->stash('self'); # bless({...}, 'Venus::Path')
error_on_mkcall
This package may raise an error_on_mkcall exception.
# given: synopsis; my @args = ("/nowhere"); my $error = $path->throw('error_on_mkcall', @args)->catch('error'); # my $name = $error->name; # "on_mkcall" # my $message = $error->message; # "Can't make system call to \"/nowhere\": $!" # my $path = $error->stash('path'); # "/nowhere"
error_on_mkdir
This package may raise an error_on_mkdir exception.
# given: synopsis; my @args = ("/nowhere"); my $error = $path->throw('error_on_mkdir', @args)->catch('error'); # my $name = $error->name; # "on_mkdir" # my $message = $error->message; # "Can't make directory \"/nowhere\": $!" # my $path = $error->stash('path'); # "/nowhere"
error_on_mkfile
This package may raise an error_on_mkfile exception.
# given: synopsis; my @args = ("/nowhere"); my $error = $path->throw('error_on_mkfile', @args)->catch('error'); # my $name = $error->name; # "on_mkfile" # my $message = $error->message; # "Can't make file \"/nowhere\": $!" # my $path = $error->stash('path'); # "/nowhere"
error_on_move
This package may raise an error_on_move exception.
# given: synopsis; my @args = ("/nowhere"); my $error = $path->throw('error_on_move', @args)->catch('error'); # my $name = $error->name; # "on_move" # my $message = $error->message; # "Can't copy \"t\/data\/planets\" to \"/nowhere\": $!" # my $path = $error->stash('path'); # "/nowhere" # my $self = $error->stash('self'); # bless({...}, 'Venus::Path')
error_on_open
This package may raise an error_on_open exception.
# given: synopsis; my @args = ("/nowhere"); my $error = $path->throw('error_on_open', @args)->catch('error'); # my $name = $error->name; # "on_open" # my $message = $error->message; # "Can't open \"/nowhere\": $!" # my $path = $error->stash('path'); # "/nowhere"
error_on_read_binmode
This package may raise an error_on_read_binmode exception.
# given: synopsis; my @args = ("/nowhere"); my $error = $path->throw('error_on_read_binmode', @args)->catch('error'); # my $name = $error->name; # "on_read_binmode" # my $message = $error->message; # "Can't binmode \"/nowhere\": $!" # my $path = $error->stash('path'); # "/nowhere"
error_on_read_error
This package may raise an error_on_read_error exception.
# given: synopsis; my @args = ("/nowhere"); my $error = $path->throw('error_on_read_error', @args)->catch('error'); # my $name = $error->name; # "on_read_error" # my $message = $error->message; # "Can't read from file \"/nowhere\": $!" # my $path = $error->stash('path'); # "/nowhere"
error_on_read_open
This package may raise an error_on_read_open exception.
# given: synopsis; my @args = ("/nowhere"); my $error = $path->throw('error_on_read_open', @args)->catch('error'); # my $name = $error->name; # "on_read_open" # my $message = $error->message; # "Can't read \"/nowhere\": $!" # my $path = $error->stash('path'); # "/nowhere"
error_on_rmdir
This package may raise an error_on_rmdir exception.
# given: synopsis; my @args = ("/nowhere"); my $error = $path->throw('error_on_rmdir', @args)->catch('error'); # my $name = $error->name; # "on_rmdir" # my $message = $error->message; # "Can't rmdir \"/nowhere\": $!" # my $path = $error->stash('path'); # "/nowhere"
error_on_write_binmode
This package may raise an error_on_write_binmode exception.
# given: synopsis; my @args = ("/nowhere", ":utf8"); my $error = $path->throw('error_on_write_binmode', @args)->catch('error'); # my $name = $error->name; # "on_write_binmode" # my $message = $error->message; # "Can't binmode \"/nowhere\": $!" # my $binmode = $error->stash('binmode'); # ":utf8" # my $path = $error->stash('path'); # "/nowhere"
error_on_write_error
This package may raise an error_on_write_error exception.
# given: synopsis; my @args = ("/nowhere"); my $error = $path->throw('error_on_write_error', @args)->catch('error'); # my $name = $error->name; # "on_write_error" # my $message = $error->message; # "Can't write to file \"/nowhere\": $!" # my $path = $error->stash('path'); # "/nowhere"
error_on_write_open
This package may raise an error_on_write_open exception.
# given: synopsis; my @args = ("/nowhere"); my $error = $path->throw('error_on_write_open', @args)->catch('error'); # my $name = $error->name; # "on_write_open" # my $message = $error->message; # "Can't write \"/nowhere\": $!" # my $path = $error->stash('path'); # "/nowhere"
error_on_unlink
This package may raise an error_on_unlink exception.
# given: synopsis; my @args = ("/nowhere"); my $error = $path->throw('error_on_unlink', @args)->catch('error'); # my $name = $error->name; # "on_unlink" # my $message = $error->message; # "Can't unlink \"/nowhere\": $!" # my $path = $error->stash('path'); # "/nowhere"
This package overloads the following operators:
(.)
This package overloads the . operator.
.
# given: synopsis; my $result = $path . '/earth'; # "t/data/planets/earth"
(eq)
This package overloads the eq operator.
eq
# given: synopsis; my $result = $path eq 't/data/planets'; # 1
(ne)
This package overloads the ne operator.
ne
# given: synopsis; my $result = $path ne 't/data/planets/'; # 1
(qr)
This package overloads the qr operator.
qr
# given: synopsis; my $result = 't/data/planets' =~ $path; # 1
("")
This package overloads the "" operator.
""
# given: synopsis; my $result = "$path"; # "t/data/planets"
example 2
# given: synopsis; my $mercury = $path->child('mercury'); my $result = "$path, $path"; # "t/data/planets, t/data/planets"
(~~)
This package overloads the ~~ operator.
~~
# given: synopsis; my $result = $path ~~ 't/data/planets'; # 1
Awncorp, awncorp@cpan.org
awncorp@cpan.org
Copyright (C) 2000, Al Newkirk.
This program is free software, you can redistribute it and/or modify it under the terms of the Apache license version 2.0.
To install Venus, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Venus
CPAN shell
perl -MCPAN -e shell install Venus
For more information on module installation, please visit the detailed CPAN module installation guide.