See also Getopt::Flex, Getopt::Valid, FormValidator::Simple, CGI, App::Cmd, App::CLI
Kind of silly , but you could write
#!/usr/bin/perl -- use strict; use warnings; use Data::Dump; use CGI; use Getopt::Long; use FormValidator::Simple; Fudge(qw[ -i 3 --input=6 --input=9 ]); Fudge('-i', '__FILE__' ); sub Fudge { local @ARGV = @_; my $query = CGI->new({}); my $queryer = sub { my( $name, $value ) = @_; my @vals = $query->param( $name ); $query->param( $name, $value, @vals ); return; }; GetOptions( 'input|i=s' => $queryer, ); my $rules = [ input => [ qw[ NOT_BLANK ASCII SINGLE ], ['REGEX' => qr/^\w+$/ +], ], ]; my $results = FormValidator::Simple->check( $query => $rules ); if ( $results->has_error ) { foreach my $key ( @{ $results->error() } ) { dd $results->record( $key )->data; foreach my $type ( @{ $results->error($key) } ) { print "invalid: $key - $type \n"; } print "\n"; } } else { print "valid input: ", $results->record('input')->data, "\n"; } } sub FormValidator::Simple::Validator::SINGLE { package FormValidator::Simple::Validator; my ($self, $params, $validatorArgs) = @_; my $data = $params->[0]; my $selected = ref $data ? $data : [$data]; return scalar(@$selected) == 1 ? TRUE : FALSE; } __END__ [9, 6, 3] invalid: input - SINGLE invalid: input - REGEX valid input: __FILE__
SINGLE is "monkeypatched" instead of a plugin
In reply to Re: getopts and duplicit params (multiple / FormValidator::Simple::Validator::SINGLE )
by Anonymous Monk
in thread getopts and duplicit params
by cOreey
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |