Name
Shell::Tools::Extra - Perl extension to reduce boilerplate in Perl shell scripts (Extra modules)
Synopsis
Description
This module exports a collection of functions from selected Perl modules from CPAN, in addition to those from Shell::Tools.
Version
This document describes version 0.04 of Shell::Tools::Extra.
Exports
This module exports the following modules and functions.
Like Shell::Tools, each module has an Exporter tag that is the same name as the module.
IPC::Run3::Shell
# = use IPC::Run3::Shell 'echo'; # import "echo"
# = use IPC::Run3::Shell qw/cat who/; # import "cat" and "who"
# = use IPC::Run3::Shell [ d => '/bin/date' ]; # alias "d" to "date"
The word Shell
followed by either a string or an array reference may be placed anywhere in the import list, which will cause the IPC::Run3::Shell module to be loaded with those arguments. If no Shell
arguments are present in use
, this module will not be loaded and it does not need to be installed.
Try::Tiny
try
{
die
"foo"
}
catch
{
warn
"caught error: $_\n"
}
# not $@
finally
{
"finally"
};
Path::Class
my
$dir
= dir(
'foo'
,
'bar'
);
# Path::Class::Dir object
my
$file
= file(
'bob'
,
'file.txt'
);
# Path::Class::File object
# interfaces to File::Spec's tempdir and tempfile
my
$tempdir
= Path::Class::tempdir(
CLEANUP
=>1);
# isa Path::Class::Dir
my
(
$fh
,
$fn
) =
$tempdir
->tempfile(
UNLINK
=>1);
# $fn is NOT an object
(Note that Path::Class may not work properly with Perl before v5.8.0.)
File::pushd
{
my
$dir
= pushd(
'/tmp'
);
# working directory changed to /tmp
}
# working directory has reverted to previous
File::Find::Rule
my
@files
= rule->file->name(
'*.pm'
)->in(
@INC
);
my
$rule
= rule->dir->name(
qr/te?mp/
i)->start(
$ENV
{HOME});
while
(
defined
(
my
$tmpdir
=
$rule
->match ) ) {
...
}
Author, Copyright, and License
Copyright (c) 2014 Hauke Daempfling (haukex@zero-g.net).
This library is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself.
For more information see the Perl Artistic License, which should have been distributed with your copy of Perl. Try the command "perldoc perlartistic
" or see http://perldoc.perl.org/perlartistic.html.