Getopt-Type-Tiny
view release on metacpan or search on metacpan
bin/example.pl view on Meta::CPAN
#!/usr/bin/env perl
# PODNAME: example.pl - Example of Getopt::Type::Tiny
use v5.40.0;
use lib 'lib';
use Getopt::Type::Tiny qw(get_opts Str Int);
use Data::Printer;
unless (@ARGV) {
local @ARGV = qw(--foo value_of_foo --bar 12 --verbose);
}
my %options = get_opts(
foo => { isa => Str },
bar => { isa => Int, default => 42 },
'verbose|v', # defaults to Bool
);
p %options;
__END__
t/get_opts.t view on Meta::CPAN
my ( $u, $p ) = split /:/, shift;
return $class->new( username => $u, password => $p );
}
}
my $Credentials = InstanceOf->of('Local::Credentials')->plus_constructors(Str, 'from_string');
# Helper function to simulate command line arguments
sub with_args {
my %arg_for = @_;
local @ARGV = $arg_for{argv} ? $arg_for{argv}->@* : ();
return get_opts( $arg_for{spec} ? $arg_for{spec}->@* : () );
}
my @test_cases = (
'Basic functionality' => {
argv => [ '--foo', 'test', '--bar', '42', '--baz' ],
spec => [
'foo' => { isa => Str },
'bar' => { isa => Int },
'baz',
( run in 0.883 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )