⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 params::check.3

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 3
📖 第 1 页 / 共 2 页
字号:
.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05).\".\" Standard preamble:.\" ========================================================================.de Sh \" Subsection heading.br.if t .Sp.ne 5.PP\fB\\$1\fR.PP...de Sp \" Vertical space (when we can't use .PP).if t .sp .5v.if n .sp...de Vb \" Begin verbatim text.ft CW.nf.ne \\$1...de Ve \" End verbatim text.ft R.fi...\" Set up some character translations and predefined strings.  \*(-- will.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left.\" double quote, and \*(R" will give a right double quote.  \*(C+ will.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,.\" nothing in troff, for use with C<>..tr \(*W-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'.ie n \{\.    ds -- \(*W-.    ds PI pi.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch.    ds L" "".    ds R" "".    ds C` "".    ds C' ""'br\}.el\{\.    ds -- \|\(em\|.    ds PI \(*p.    ds L" ``.    ds R" '''br\}.\".\" Escape single quotes in literal strings from groff's Unicode transform..ie \n(.g .ds Aq \(aq.el       .ds Aq '.\".\" If the F register is turned on, we'll generate index entries on stderr for.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index.\" entries marked with X<> in POD.  Of course, you'll have to process the.\" output yourself in some meaningful fashion..ie \nF \{\.    de IX.    tm Index:\\$1\t\\n%\t"\\$2"...    nr % 0.    rr F.\}.el \{\.    de IX...\}.\".\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2)..\" Fear.  Run.  Save yourself.  No user-serviceable parts..    \" fudge factors for nroff and troff.if n \{\.    ds #H 0.    ds #V .8m.    ds #F .3m.    ds #[ \f1.    ds #] \fP.\}.if t \{\.    ds #H ((1u-(\\\\n(.fu%2u))*.13m).    ds #V .6m.    ds #F 0.    ds #[ \&.    ds #] \&.\}.    \" simple accents for nroff and troff.if n \{\.    ds ' \&.    ds ` \&.    ds ^ \&.    ds , \&.    ds ~ ~.    ds /.\}.if t \{\.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u".    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'.\}.    \" troff and (daisy-wheel) nroff accents.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'.ds 8 \h'\*(#H'\(*b\h'-\*(#H'.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#].ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#].ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#].ds ae a\h'-(\w'a'u*4/10)'e.ds Ae A\h'-(\w'A'u*4/10)'E.    \" corrections for vroff.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'.    \" for low resolution devices (crt and lpr).if \n(.H>23 .if \n(.V>19 \\{\.    ds : e.    ds 8 ss.    ds o a.    ds d- d\h'-1'\(ga.    ds D- D\h'-1'\(hy.    ds th \o'bp'.    ds Th \o'LP'.    ds ae ae.    ds Ae AE.\}.rm #[ #] #H #V #F C.\" ========================================================================.\".IX Title "Params::Check 3".TH Params::Check 3 "2007-12-18" "perl v5.10.0" "Perl Programmers Reference Guide".\" For nroff, turn off justification.  Always turn off hyphenation; it makes.\" way too many mistakes in technical documents..if n .ad l.nh.SH "NAME"Params::Check \- A generic input parsing/checking mechanism..SH "SYNOPSIS".IX Header "SYNOPSIS".Vb 1\&    use Params::Check qw[check allow last_error];\&\&    sub fill_personal_info {\&        my %hash = @_;\&        my $x;\&\&        my $tmpl = {\&            firstname   => { required   => 1, defined => 1 },\&            lastname    => { required   => 1, store => \e$x },\&            gender      => { required   => 1,\&                             allow      => [qr/M/i, qr/F/i],\&                           },\&            married     => { allow      => [0,1] },\&            age         => { default    => 21,\&                             allow      => qr/^\ed+$/,\&                           },\&\&            phone       => { allow => [ sub { return 1 if /$valid_re/ },\&                                        \*(Aq1\-800\-PERL\*(Aq ]\&                           },\&            id_list     => { default        => [],\&                             strict_type    => 1\&                           },\&            employer    => { default => \*(AqNSA\*(Aq, no_override => 1 },\&        };\&\&        ### check() returns a hashref of parsed args on success ###\&        my $parsed_args = check( $tmpl, \e%hash, $VERBOSE )\&                            or die qw[Could not parse arguments!];\&\&        ... other code here ...\&    }\&\&    my $ok = allow( $colour, [qw|blue green yellow|] );\&\&    my $error = Params::Check::last_error();.Ve.SH "DESCRIPTION".IX Header "DESCRIPTION"Params::Check is a generic input parsing/checking mechanism..PPIt allows you to validate input via a template. The only requirementis that the arguments must be named..PPParams::Check can do the following things for you:.IP "\(bu" 4Convert all keys to lowercase.IP "\(bu" 4Check if all required arguments have been provided.IP "\(bu" 4Set arguments that have not been provided to the default.IP "\(bu" 4Weed out arguments that are not supported and warn about them to theuser.IP "\(bu" 4Validate the arguments given by the user based on strings, regexes,lists or even subroutines.IP "\(bu" 4Enforce type integrity if required.PPMost of Params::Check's power comes from its template, which we'lldiscuss below:.SH "Template".IX Header "Template"As you can see in the synopsis, based on your template, the argumentsprovided will be validated..PPThe template can take a different set of rules per key that is used..PPThe following rules are available:.IP "default" 4.IX Item "default"This is the default value if none was provided by the user.This is also the type \f(CW\*(C`strict_type\*(C'\fR will look at when checking typeintegrity (see below)..IP "required" 4.IX Item "required"A boolean flag that indicates if this argument was a requiredargument. If marked as required and not provided, \fIcheck()\fR will fail..IP "strict_type" 4.IX Item "strict_type"This does a \f(CW\*(C`ref()\*(C'\fR check on the argument provided. The \f(CW\*(C`ref\*(C'\fR of theargument must be the same as the \f(CW\*(C`ref\*(C'\fR of the default value for thischeck to pass..SpThis is very useful if you insist on taking an array reference asargument for example..IP "defined" 4.IX Item "defined"If this template key is true, enforces that if this key is provided byuser input, its value is \f(CW\*(C`defined\*(C'\fR. This just means that the user isnot allowed to pass \f(CW\*(C`undef\*(C'\fR as a value for this key and is equivalentto:    allow => sub { defined \f(CW$_\fR[0] && \s-1OTHER\s0 \s-1TESTS\s0 }.IP "no_override" 4.IX Item "no_override"This allows you to specify \f(CW\*(C`constants\*(C'\fR in your template. ie, they

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -