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

📄 switch.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 "Switch 3".TH Switch 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"Switch \- A switch statement for Perl.SH "VERSION".IX Header "VERSION"This document describes version 2.11 of Switch,released Nov 22, 2006..SH "SYNOPSIS".IX Header "SYNOPSIS".Vb 1\&    use Switch;\&\&    switch ($val) {\&        case 1          { print "number 1" }\&        case "a"        { print "string a" }\&        case [1..10,42] { print "number in list" }\&        case (@array)   { print "number in list" }\&        case /\ew+/      { print "pattern" }\&        case qr/\ew+/    { print "pattern" }\&        case (%hash)    { print "entry in hash" }\&        case (\e%hash)   { print "entry in hash" }\&        case (\e&sub)    { print "arg to subroutine" }\&        else            { print "previous case not true" }\&    }.Ve.SH "BACKGROUND".IX Header "BACKGROUND"[Skip ahead to \*(L"\s-1DESCRIPTION\s0\*(R" if you don't care about the whysand wherefores of this control structure].PPIn seeking to devise a \*(L"Swiss Army\*(R" case mechanism suitable for Perl,it is useful to generalize this notion of distributed conditionaltesting as far as possible. Specifically, the concept of \*(L"matching\*(R"between the switch value and the various case values need not berestricted to numeric (or string or referential) equality, as it is in other languages. Indeed, as Table 1 illustrates, Perloffers at least eighteen different ways in which two values couldgenerate a match..PP.Vb 1\&        Table 1: Matching a switch value ($s) with a case value ($c)\&\&        Switch  Case    Type of Match Implied   Matching Code\&        Value   Value   \&        ======  =====   =====================   =============\&\&        number  same    numeric or referential  match if $s == $c;\&        or ref          equality\&\&        object  method  result of method call   match if $s\->$c();\&        ref     name                            match if defined $s\->$c();\&                or ref\&\&        other   other   string equality         match if $s eq $c;\&        non\-ref non\-ref\&        scalar  scalar\&\&        string  regexp  pattern match           match if $s =~ /$c/;\&\&        array   scalar  array entry existence   match if 0<=$c && $c<@$s;\&        ref             array entry definition  match if defined $s\->[$c];\&                        array entry truth       match if $s\->[$c];\&\&        array   array   array intersection      match if intersects(@$s, @$c);\&        ref     ref     (apply this table to\&                         all pairs of elements\&                         $s\->[$i] and\&                         $c\->[$j])\&\&        array   regexp  array grep              match if grep /$c/, @$s;\&        ref     \&\&        hash    scalar  hash entry existence    match if exists $s\->{$c};\&        ref             hash entry definition   match if defined $s\->{$c};\&                        hash entry truth        match if $s\->{$c};\&\&        hash    regexp  hash grep               match if grep /$c/, keys %$s;\&        ref     \&\&        sub     scalar  return value defn       match if defined $s\->($c);\&        ref             return value truth      match if $s\->($c);\&\&        sub     array   return value defn       match if defined $s\->(@$c);\&        ref     ref     return value truth      match if $s\->(@$c);.Ve.PPIn reality, Table 1 covers 31 alternatives, because only the equality andintersection tests are commutative; in all other cases, the roles ofthe \f(CW$s\fR and \f(CW$c\fR variables could be reversed to produce adifferent test. For example, instead of testing a single hash forthe existence of a series of keys (\f(CW\*(C`match if exists $s\->{$c}\*(C'\fR),one could test for the existence of a single key in a series of hashes(\f(CW\*(C`match if exists $c\->{$s}\*(C'\fR)..SH "DESCRIPTION".IX Header "DESCRIPTION"The Switch.pm module implements a generalized case mechanism that coversmost (but not all) of the numerous possible combinations of switch and casevalues described above..PPThe module augments the standard Perl syntax with two new controlstatements: \f(CW\*(C`switch\*(C'\fR and \f(CW\*(C`case\*(C'\fR. The \f(CW\*(C`switch\*(C'\fR statement takes asingle scalar argument of any type, specified in parentheses.\&\f(CW\*(C`switch\*(C'\fR stores this value as thecurrent switch value in a (localized) control variable.The value is followed by a block which may contain one or morePerl statements (including the \f(CW\*(C`case\*(C'\fR statement described below).The block is unconditionally executed once the switch value hasbeen cached..PPA \f(CW\*(C`case\*(C'\fR statement takes a single scalar argument (in mandatoryparentheses if it's a variable; otherwise the parens are optional) andselects the appropriate type of matching between that argument and thecurrent switch value. The type of matching used is determined by therespective types of the switch value and the \f(CW\*(C`case\*(C'\fR argument, asspecified in Table 1. If the match is successful, the mandatoryblock associated with the \f(CW\*(C`case\*(C'\fR statement is executed..PPIn most other respects, the \f(CW\*(C`case\*(C'\fR statement is semantically identicalto an \f(CW\*(C`if\*(C'\fR statement. For example, it can be followed by an \f(CW\*(C`else\*(C'\fRclause, and can be used as a postfix statement qualifier..PPHowever, when a \f(CW\*(C`case\*(C'\fR block has been executed control is automaticallytransferred to the statement after the immediately enclosing \f(CW\*(C`switch\*(C'\fRblock, rather than to the next statement within the block. In otherwords, the success of any \f(CW\*(C`case\*(C'\fR statement prevents other cases in thesame scope from executing. But see \*(L"Allowing fall-through\*(R" below.

⌨️ 快捷键说明

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