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 )