MooseX::Getopt

package Class;
with 'MooseX::Getopt';

has $_ for qw/foo bar baz/;

sub run { say "$_: ", $self->$_ for qw/foo bar baz/ }
#!/usr/bin/env perl
Class->new_with_options->run;
$ my_script.pl --foo 42 --bar Hello --baz 123
foo: 42
bar: Hello
baz: 123