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

📄 perlintern.1

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 1
📖 第 1 页 / 共 3 页
字号:
.\" 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 "PERLINTERN 1".TH PERLINTERN 1 "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"perlintern \- autogenerated documentation of purely \fBinternal\fR		 Perl functions.SH "DESCRIPTION".IX Xref "internal Perl functions interpreter functions".IX Header "DESCRIPTION"This file is the autogenerated documentation of functions in thePerl interpreter that are documented using Perl's internal documentationformat but are not marked as part of the Perl \s-1API\s0. In other words,\&\fBthey are not for use in extensions\fR!.SH "CV reference counts and CvOUTSIDE".IX Header "CV reference counts and CvOUTSIDE".IP "CvWEAKOUTSIDE" 8.IX Xref "CvWEAKOUTSIDE".IX Item "CvWEAKOUTSIDE"Each \s-1CV\s0 has a pointer, \f(CW\*(C`CvOUTSIDE()\*(C'\fR, to its lexically enclosing\&\s-1CV\s0 (if any). Because pointers to anonymous sub prototypes arestored in \f(CW\*(C`&\*(C'\fR pad slots, it is a possible to get a circular reference,with the parent pointing to the child and vice-versa. To avoid theensuing memory leak, we do not increment the reference count of the \s-1CV\s0pointed to by \f(CW\*(C`CvOUTSIDE\*(C'\fR in the \fIone specific instance\fR that the parenthas a \f(CW\*(C`&\*(C'\fR pad slot pointing back to us. In this case, we set the\&\f(CW\*(C`CvWEAKOUTSIDE\*(C'\fR flag in the child. This allows us to determine under whatcircumstances we should decrement the refcount of the parent when freeingthe child..SpThere is a further complication with non-closure anonymous subs (i.e. thosethat do not refer to any lexicals outside that sub). In this case, theanonymous prototype is shared rather than being cloned. This has theconsequence that the parent may be freed while there are still activechildren, eg.Sp.Vb 1\&    BEGIN { $a = sub { eval \*(Aq$x\*(Aq } }.Ve.SpIn this case, the \s-1BEGIN\s0 is freed immediately after execution since thereare no active references to it: the anon sub prototype has\&\f(CW\*(C`CvWEAKOUTSIDE\*(C'\fR set since it's not a closure, and \f(CW$a\fR points to the same\&\s-1CV\s0, so it doesn't contribute to \s-1BEGIN\s0's refcount either.  When \f(CW$a\fR isexecuted, the \f(CW\*(C`eval \*(Aq$x\*(Aq\*(C'\fR causes the chain of \f(CW\*(C`CvOUTSIDE\*(C'\fRs to be followed,and the freed \s-1BEGIN\s0 is accessed..SpTo avoid this, whenever a \s-1CV\s0 and its associated pad is freed, any\&\f(CW\*(C`&\*(C'\fR entries in the pad are explicitly removed from the pad, and if therefcount of the pointed-to anon sub is still positive, then thatchild's \f(CW\*(C`CvOUTSIDE\*(C'\fR is set to point to its grandparent. This will onlyoccur in the single specific case of a non-closure anon prototypehaving one or more active references (such as \f(CW$a\fR above)..SpOne other thing to consider is that a \s-1CV\s0 may be merely undefinedrather than freed, eg \f(CW\*(C`undef &foo\*(C'\fR. In this case, its refcount maynot have reached zero, but we still delete its pad and its \f(CW\*(C`CvROOT\*(C'\fR etc.Since various children may still have their \f(CW\*(C`CvOUTSIDE\*(C'\fR pointing at thisundefined \s-1CV\s0, we keep its own \f(CW\*(C`CvOUTSIDE\*(C'\fR for the time being, so thatthe chain of lexical scopes is unbroken. For example, the followingshould print 123:.Sp.Vb 5\&    my $x = 123;\&    sub tmp { sub { eval \*(Aq$x\*(Aq } }\&    my $a = tmp();\&    undef &tmp;\&    print  $a\->();\&\&        bool    CvWEAKOUTSIDE(CV *cv).Ve.SH "Functions in file pad.h".IX Header "Functions in file pad.h".IP "\s-1CX_CURPAD_SAVE\s0" 8.IX Xref "CX_CURPAD_SAVE".IX Item "CX_CURPAD_SAVE"Save the current pad in the given context block structure..Sp.Vb 1\&        void    CX_CURPAD_SAVE(struct context).Ve.IP "\s-1CX_CURPAD_SV\s0" 8.IX Xref "CX_CURPAD_SV".IX Item "CX_CURPAD_SV"Access the \s-1SV\s0 at offset po in the saved current pad in the givencontext block structure (can be used as an lvalue)..Sp.Vb 1\&        SV *    CX_CURPAD_SV(struct context, PADOFFSET po).Ve.IP "\s-1PAD_BASE_SV\s0" 8.IX Xref "PAD_BASE_SV".IX Item "PAD_BASE_SV"Get the value from slot \f(CW\*(C`po\*(C'\fR in the base (DEPTH=1) pad of a padlist.Sp.Vb 1\&        SV *    PAD_BASE_SV(PADLIST padlist, PADOFFSET po).Ve.IP "\s-1PAD_CLONE_VARS\s0" 8.IX Xref "PAD_CLONE_VARS".IX Item "PAD_CLONE_VARS"|CLONE_PARAMS* paramClone the state variables associated with running and compiling pads..Sp.Vb 1\&        void    PAD_CLONE_VARS(PerlInterpreter *proto_perl \e).Ve.IP "\s-1PAD_COMPNAME_FLAGS\s0" 8.IX Xref "PAD_COMPNAME_FLAGS".IX Item "PAD_COMPNAME_FLAGS"Return the flags for the current compiling pad nameat offset \f(CW\*(C`po\*(C'\fR. Assumes a valid slot entry..Sp.Vb 1\&        U32     PAD_COMPNAME_FLAGS(PADOFFSET po).Ve.IP "\s-1PAD_COMPNAME_GEN\s0" 8.IX Xref "PAD_COMPNAME_GEN".IX Item "PAD_COMPNAME_GEN"The generation number of the name at offset \f(CW\*(C`po\*(C'\fR in the currentcompiling pad (lvalue). Note that \f(CW\*(C`SvUVX\*(C'\fR is hijacked for this purpose..Sp.Vb 1\&        STRLEN  PAD_COMPNAME_GEN(PADOFFSET po).Ve.IP "PAD_COMPNAME_GEN_set" 8.IX Xref "PAD_COMPNAME_GEN_set".IX Item "PAD_COMPNAME_GEN_set"Sets the generation number of the name at offset \f(CW\*(C`po\*(C'\fR in the currentling pad (lvalue) to \f(CW\*(C`gen\*(C'\fR.  Note that \f(CW\*(C`SvUV_set\*(C'\fR is hijacked for this purpose..Sp.Vb 1\&        STRLEN  PAD_COMPNAME_GEN_set(PADOFFSET po, int gen).Ve.IP "\s-1PAD_COMPNAME_OURSTASH\s0" 8.IX Xref "PAD_COMPNAME_OURSTASH".IX Item "PAD_COMPNAME_OURSTASH"Return the stash associated with an \f(CW\*(C`our\*(C'\fR variable.Assumes the slot entry is a valid \f(CW\*(C`our\*(C'\fR lexical..Sp.Vb 1\&        HV *    PAD_COMPNAME_OURSTASH(PADOFFSET po).Ve.IP "\s-1PAD_COMPNAME_PV\s0" 8.IX Xref "PAD_COMPNAME_PV".IX Item "PAD_COMPNAME_PV"Return the name of the current compiling pad nameat offset \f(CW\*(C`po\*(C'\fR. Assumes a valid slot entry..Sp.Vb 1\&        char *  PAD_COMPNAME_PV(PADOFFSET po).Ve.IP "\s-1PAD_COMPNAME_TYPE\s0" 8.IX Xref "PAD_COMPNAME_TYPE".IX Item "PAD_COMPNAME_TYPE"Return the type (stash) of the current compiling pad name at offset\&\f(CW\*(C`po\*(C'\fR. Must be a valid name. Returns null if not typed..Sp.Vb 1\&        HV *    PAD_COMPNAME_TYPE(PADOFFSET po).Ve.IP "\s-1PAD_DUP\s0" 8.IX Xref "PAD_DUP".IX Item "PAD_DUP"Clone a padlist..Sp.Vb 1\&        void    PAD_DUP(PADLIST dstpad, PADLIST srcpad, CLONE_PARAMS* param).Ve.IP "\s-1PAD_RESTORE_LOCAL\s0" 8.IX Xref "PAD_RESTORE_LOCAL".IX Item "PAD_RESTORE_LOCAL"Restore the old pad saved into the local variable opad by \s-1\fIPAD_SAVE_LOCAL\s0()\fR.Sp.Vb 1\&        void    PAD_RESTORE_LOCAL(PAD *opad).Ve.IP "\s-1PAD_SAVE_LOCAL\s0" 8.IX Xref "PAD_SAVE_LOCAL".IX Item "PAD_SAVE_LOCAL"Save the current pad to the local variable opad, then make thecurrent pad equal to npad.Sp.Vb 1\&        void    PAD_SAVE_LOCAL(PAD *opad, PAD *npad).Ve.IP "\s-1PAD_SAVE_SETNULLPAD\s0" 8.IX Xref "PAD_SAVE_SETNULLPAD".IX Item "PAD_SAVE_SETNULLPAD"Save the current pad then set it to null..Sp.Vb 1\&        void    PAD_SAVE_SETNULLPAD().Ve.IP "\s-1PAD_SETSV\s0" 8.IX Xref "PAD_SETSV".IX Item "PAD_SETSV"Set the slot at offset \f(CW\*(C`po\*(C'\fR in the current pad to \f(CW\*(C`sv\*(C'\fR.Sp.Vb 1\&        SV *    PAD_SETSV(PADOFFSET po, SV* sv).Ve.IP "\s-1PAD_SET_CUR\s0" 8.IX Xref "PAD_SET_CUR".IX Item "PAD_SET_CUR"

⌨️ 快捷键说明

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