Getopt::Fancy 0.02 review

Download
by rbytes.net on

Getopt::Fancy is an object approach to handling command line options, focusing on end user happiness. SYNOPSIS use Getopt::

License: Perl Artistic License
File size: 5K
Developer: Robert Powers
0 stars award from rbytes.net

Getopt::Fancy is an object approach to handling command line options, focusing on end user happiness.

SYNOPSIS

use Getopt::Fancy;

my $opts = Getopt::Fancy->new();
$opts->add("db", GT => "=s",
EX => "",
DESC => "The database to dump. Leave unset for all databases.",
DEF => "teen_titans",
ALLOWED => ["--all-databases", "mydb", "teen_titans"],
REGEX => '^[a-zA-Z0-9_]+$',
REQ => 0,
SECTION => "Required DB Params");

# Allow just printing out of set options
$opts->add("check_args", DESC => "Just print all the options", SECTION => "Misc Params");

# Allow user to specify list of options s/he needs help with
$opts->add("help", GT => ":s@", EX => "[option1,option2..]",
DESC => "Give option names and it'll print the help for just those options, otherwise all.",
SECTION=>"Misc Params", COMMAS=>1);

# Get the command line options
my $error_msg = $opts->get_options();
print_usage($error_msg) if $error_msg;

print "Will dump this database: $opts->{db} n";
print "User wants help information on these: " . join(", ", @{$opts->{help}}) . "n" if ($opts->{help});

print_usage() if $opts->{help};
print_args() if $opts->{check_args};

sub print_args
{
print $opts->get_values();
exit(0);
}

sub print_usage
{
my $hopts;
my $msg = shift;

$hopts = $opts->{help} unless (scalar @{$opts->{help}} == 0);
print "usage: $0 n";
print $opts->get_usage($hopts);

print "ERROR: $msgn" if $msg;

exit(0);
}

Getopt::Fancy Allows command line options to be all in one place in your script including default values, allowed values, user-friendly descriptions, required flags and pattern matching requirements. Ofttimes script writers skimp on the usage information or have out-dated help information. This modules helps script writers to be better citizens.

This module uses Getopt::Long, so the same rules apply.

Requirements:
Perl

Getopt::Fancy 0.02 keywords