Alien-ROOT
view release on metacpan or search on metacpan
inc/inc_IPC-Cmd/IPC/Cmd.pm view on Meta::CPAN
my $tmpl = {
verbose => { default => $VERBOSE, store => \$verbose },
buffer => { default => \$def_buf, store => \$buffer },
command => { required => 1, store => \$cmd,
allow => sub { !ref($_[0]) or ref($_[0]) eq 'ARRAY' },
},
timeout => { default => 0, store => \$timeout },
};
unless( check( $tmpl, \%hash, $VERBOSE ) ) {
Carp::carp( loc( "Could not validate input: %1",
Params::Check->last_error ) );
return;
};
$cmd = _quote_args_vms( $cmd ) if IS_VMS;
### strip any empty elements from $cmd if present
if ( $ALLOW_NULL_ARGS ) {
$cmd = [ grep { defined } @$cmd ] if ref $cmd;
}
inc/inc_Module-Build/Module/Build/Base.pm view on Meta::CPAN
$self->auto_config_requires if $args->{auto};
# A little helper sub
my $add_node = sub {
my ($name, $val) = @_;
$node->{$name} = $val;
push @$keys, $name if $keys;
};
# validate required fields
foreach my $f (qw(dist_name dist_version dist_author dist_abstract license)) {
my $field = $self->$f();
unless ( defined $field and length $field ) {
my $err = "ERROR: Missing required field '$f' for metafile\n";
if ( $fatal ) {
die $err;
}
else {
$self->log_warn($err);
}
inc/inc_Module-Build/Module/Build/Base.pm view on Meta::CPAN
# add dist_* fields
foreach my $f (qw(dist_name dist_version dist_author dist_abstract)) {
(my $name = $f) =~ s/^dist_//;
$add_node->($name, $self->$f());
}
# normalize version
$node->{version} = $self->normalize_version($node->{version});
# validate license information
my $license = $self->license;
my ($meta_license, $meta_license_url);
# XXX this is still meta spec version 1 stuff
# if Software::License::* exists, then we can use it to get normalized name
# for META files
if ( my $sl = $self->_software_license_object ) {
$meta_license = $sl->meta_name;
inc/inc_Module-Build/Module/Build/Compat.pm view on Meta::CPAN
my %macro_to_build = %makefile_to_build;
# "LIB=foo make" is not the same as "perl Makefile.PL LIB=foo"
delete $macro_to_build{LIB};
sub _merge_prereq {
my ($req, $breq) = @_;
$req ||= {};
$breq ||= {};
# validate formats
for my $p ( $req, $breq ) {
for my $k (keys %$p) {
next if $k eq 'perl';
my $v_obj = eval { Module::Build::Version->new($p->{$k}) };
if ( ! defined $v_obj ) {
die "A prereq of the form '$p->{$k}' for '$k' is not supported by Module::Build::Compat ( use a simpler version like '0.05' or 'v1.4.25' )\n";
}
# It seems like a lot of people trip over "0.1.2" stuff, so we help them here...
inc/inc_Params-Check/Params/Check.pm view on Meta::CPAN
my $ok = allow( $colour, [qw|blue green yellow|] );
my $error = Params::Check::last_error();
=head1 DESCRIPTION
Params::Check is a generic input parsing/checking mechanism.
It allows you to validate input via a template. The only requirement
is that the arguments must be named.
Params::Check can do the following things for you:
=over 4
=item *
Convert all keys to lowercase
inc/inc_Params-Check/Params/Check.pm view on Meta::CPAN
Enforce type integrity if required
=back
Most of Params::Check's power comes from its template, which we'll
discuss below:
=head1 Template
As you can see in the synopsis, based on your template, the arguments
provided will be validated.
The template can take a different set of rules per key that is used.
The following rules are available:
=over 4
=item default
This is the default value if none was provided by the user.
inc/inc_Params-Check/Params/Check.pm view on Meta::CPAN
my $args = check( { foo => { default => 1 }, $input );
my $x = $args->{foo};
You can alter the global variable $Params::Check::NO_DUPLICATES to
control whether the C<store>'d key will still be present in your
result set. See the L<Global Variables> section below.
=item allow
A set of criteria used to validate a particular piece of data if it
has to adhere to particular rules.
See the C<allow()> function for details.
=back
=head1 Functions
=head2 check( \%tmpl, \%args, [$verbose] );
inc/inc_Params-Check/Params/Check.pm view on Meta::CPAN
### check if they should be of a strict type, and if it is ###
if( ($tmpl{'strict_type'} || $STRICT_TYPE) and
(ref $arg ne ref $tmpl{'default'})
) {
_store_error(loc(q|Key '%1' needs to be of type '%2'|,
$key, ref $tmpl{'default'} || 'SCALAR'), $verbose );
$wrong ||= 1;
next;
}
### check if we have an allow handler, to validate against ###
### allow() will report its own errors ###
if( exists $tmpl{'allow'} and not do {
local $_ERROR_STRING;
allow( $arg, $tmpl{'allow'} )
}
) {
### stringify the value in the error report -- we don't want dumps
### of objects, but we do want to see *roughly* what we passed
_store_error(loc(q|Key '%1' (%2) is of invalid type for '%3' |.
q|provided by %4|,
( run in 0.267 second using v1.01-cache-2.11-cpan-a5abf4f5562 )