IPC::Run3::Shell::CLIWrapper - Perl extension for wrapping arbitrary command-line tools
use IPC::Run3::Shell::CLIWrapper; my $git = IPC::Run3::Shell::CLIWrapper->new({chomp=>1}, 'git'); my @log = $git->log('--oneline'); my $perl = IPC::Run3::Shell::CLIWrapper ->new( { opt_char=>'-' }, 'perl' ); my $foo = $perl->( [ l => undef, e => q{ print for @ARGV } ], '--', 'Hello', 'World!' ); use JSON::PP qw/decode_json/; my $s3api = IPC::Run3::Shell::CLIWrapper->new( { fail_on_stderr => 1, stdout_filter => sub { $_=decode_json($_) } }, qw/ aws --profile MyProfile --output json s3api /); my $buckets = $s3api->list_buckets;
This module wraps IPC::Run3::Shell in a layer that translates method calls and their arguments to the command-line arguments of system commands.
new
The arguments to the constructor are the same as to "make_cmd" in IPC::Run3::Shell, with the addition of the following options, which can be placed in hashref(s) at the beginning of the argument list:
opt_char
The string to prefix to option names, defaults to "--". Other common values are "-" and perhaps "/" on Windows.
"--"
"-"
"/"
val_sep
The separator between an option name and its value; if set to undef (the default), then the name and value are two separate items in the argument list.
undef
under2dash
Boolean to enable or disable the conversion of underscores to dashes in option names and method names. Option values and plain strings remain unchanged. Default is true.
The name of the method is the first item in the generated argument list. You may also call the object of this class as a code reference, which behaves exactly the same as a method call except no method name is added as the first item of the argument list. This can be useful if you want to start with options, or you want to call commands that have the same names as the methods of this class (new, AUTOLOAD, and DESTROY) or the built-ins of the UNIVERSAL class, such as can.
AUTOLOAD
DESTROY
can
The arguments to the method call (or code reference) are translated as follows:
These must have an even number of items, and every two items represent a pair of an option name and its value. If the value is undef, it is omitted from the generated argument list. See also the options described in "new".
Act the same as arguments to IPC::Run3::Shell. This means that hash references can be passed as the last item(s) in the list to set options.
Copyright (c) 2020 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.
perldoc perlartistic
To install IPC::Run3::Shell, copy and paste the appropriate command in to your terminal.
cpanm
cpanm IPC::Run3::Shell
CPAN shell
perl -MCPAN -e shell install IPC::Run3::Shell
For more information on module installation, please visit the detailed CPAN module installation guide.