Cari di Perl 
    Perl User Manual
Daftar Isi
(Sebelumnya) Autogenerated documentation fo ...Perl method resolution plugin ... (Berikutnya)
Internals and C language interface

Autogenerated documentation of purely internal Perl functions

Daftar Isi

NAME

perlintern - autogenerated documentation of purely internal Perl functions

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 API. In other words,they are not for use in extensions!

Compile-time scope hooks

  • BhkENTRY

    Return an entry from the BHK structure. which is a preprocessor tokenindicating which entry to return. If the appropriate flag is not setthis will return NULL. The type of the return value depends on whichentry you ask for.

    NOTE: this function is experimental and may change or beremoved without notice.

    1. void *BhkENTRY(BHK *hk, which)
  • BhkFLAGS

    Return the BHK's flags.

    NOTE: this function is experimental and may change or beremoved without notice.

    1. U32BhkFLAGS(BHK *hk)
  • CALL_BLOCK_HOOKS

    Call all the registered block hooks for type which. which is apreprocessing token; the type of arg depends on which.

    NOTE: this function is experimental and may change or beremoved without notice.

    1. voidCALL_BLOCK_HOOKS(which, arg)

CV reference counts and CvOUTSIDE

  • CvWEAKOUTSIDE

    Each CV has a pointer, CvOUTSIDE(), to its lexically enclosingCV (if any). Because pointers to anonymous sub prototypes arestored in & 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 CVpointed to by CvOUTSIDE in the one specific instance that the parenthas a & pad slot pointing back to us. In this case, we set theCvWEAKOUTSIDE flag in the child. This allows us to determine under whatcircumstances we should decrement the refcount of the parent when freeingthe child.

    There 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

    1. BEGIN { $a = sub { eval '$x' } }

    In this case, the BEGIN is freed immediately after execution since thereare no active references to it: the anon sub prototype hasCvWEAKOUTSIDE set since it's not a closure, and $a points to the sameCV, so it doesn't contribute to BEGIN's refcount either. When $a isexecuted, the eval '$x' causes the chain of CvOUTSIDEs to be followed,and the freed BEGIN is accessed.

    To avoid this, whenever a CV and its associated pad is freed, any& 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 CvOUTSIDE 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 $a above).

    One other thing to consider is that a CV may be merely undefinedrather than freed, eg undef &foo. In this case, its refcount maynot have reached zero, but we still delete its pad and its CvROOT etc.Since various children may still have their CvOUTSIDE pointing at thisundefined CV, we keep its own CvOUTSIDE for the time being, so thatthe chain of lexical scopes is unbroken. For example, the followingshould print 123:

    1. my $x = 123;
    2. sub tmp { sub { eval '$x' } }
    3. my $a = tmp();
    4. undef &tmp;
    5. print $a->();
    6. boolCvWEAKOUTSIDE(CV *cv)

Embedding Functions

  • cv_dump

    dump the contents of a CV

    1. voidcv_dump(CV *cv, const char *title)
  • do_dump_pad

    Dump the contents of a padlist

    1. voiddo_dump_pad(I32 level, PerlIO *file,
    2. PADLIST *padlist, int full)
  • intro_my

    "Introduce" my variables to visible status.

    1. U32intro_my()
  • padlist_dup

    Duplicates a pad.

    1. AV *padlist_dup(AV *srcpad, CLONE_PARAMS *param)
  • pad_alloc_name

    Allocates a place in the currently-compilingpad (via pad_alloc in perlapi) andthen stores a name for that entry. namesv is adopted and becomes thename entry; it must already contain the name string and be sufficientlyupgraded. typestash and ourstash and the padadd_STATE flag getadded to namesv. None of the otherprocessing of pad_add_name_pvn in perlapiis done. Returns the offset of the allocated pad slot.

    1. PADOFFSET pad_alloc_name(SV *namesv, U32 flags,
    2. HV *typestash, HV *ourstash)
  • pad_block_start

    Update the pad compilation state variables on entry to a new block

    1. voidpad_block_start(int full)
  • pad_check_dup

    Check for duplicate declarations: report any of:

    1. * a my in the current scope with the same name;
    2. * an our (anywhere in the pad) with the same name and the
    3. same stash as C<ourstash>

    is_our indicates that the name to check is an 'our' declaration.

    1. voidpad_check_dup(SV *name, U32 flags,
    2. const HV *ourstash)
  • pad_findlex

    Find a named lexical anywhere in a chain of nested pads. Add fake entriesin the inner pads if it's found in an outer one.

    Returns the offset in the bottom pad of the lex or the fake lex.cv is the CV in which to start the search, and seq is the current cop_seqto match against. If warn is true, print appropriate warnings. The out_*vars return values, and so are pointers to where the returned valuesshould be stored. out_capture, if non-null, requests that the innermostinstance of the lexical is captured; out_name_sv is set to the innermostmatched namesv or fake namesv; out_flags returns the flags normallyassociated with the IVX field of a fake namesv.

    Note that pad_findlex() is recursive; it recurses up the chain of CVs,then comes back down, adding fake entries as it goes. It has to be this waybecause fake namesvs in anon protoypes have to store in xlow the index intothe parent pad.

    1. PADOFFSET pad_findlex(const char *namepv,
    2. STRLEN namelen, U32 flags,
    3. const CV* cv, U32 seq, int warn,
    4. SV** out_capture,
    5. SV** out_name_sv, int *out_flags)
  • pad_fixup_inner_anons

    For any anon CVs in the pad, change CvOUTSIDE of that CV fromold_cv to new_cv if necessary. Needed when a newly-compiled CV has to bemoved to a pre-existing CV struct.

    1. voidpad_fixup_inner_anons(PADLIST *padlist,
    2. CV *old_cv, CV *new_cv)
  • pad_free

    Free the SV at offset po in the current pad.

    1. voidpad_free(PADOFFSET po)
  • pad_leavemy

    Cleanup at end of scope during compilation: set the max seq number forlexicals in this scope and warn of any lexicals that never got introduced.

    1. voidpad_leavemy()
  • pad_push

    Push a new pad frame onto the padlist, unless there's already a pad atthis depth, in which case don't bother creating a new one. Then givethe new pad an @_ in slot zero.

    1. voidpad_push(PADLIST *padlist, int depth)
  • pad_reset

    Mark all the current temporaries for reuse

    1. voidpad_reset()
  • pad_swipe

    Abandon the tmp in the current pad at offset po and replace with anew one.

    1. voidpad_swipe(PADOFFSET po, bool refadjust)

Functions in file op.c

  • core_prototype

    This function assigns the prototype of the named core function to sv, orto a new mortal SV if sv is NULL. It returns the modified sv, orNULL if the core function has no prototype. code is a code as returnedby keyword(). It must be negative and unequal to -KEY_CORE.

    1. SV *core_prototype(SV *sv, const char *name,
    2. const int code,
    3. int * const opnum)

Functions in file pp_ctl.c

  • docatch

    Check for the cases 0 or 3 of cur_env.je_ret, only used inside an eval context.

    0 is used as continue inside eval,

    3 is used for a die caught by an inner eval - continue inner loop

    See cop.h: je_mustcatch, when set at any runlevel to TRUE, means eval ops mustestablish a local jmpenv to handle exception traps.

    1. OP*docatch(OP *o)

GV Functions

  • gv_try_downgrade

    If the typeglob gv can be expressed more succinctly, by havingsomething other than a real GV in its place in the stash, replace itwith the optimised form. Basic requirements for this are that gvis a real typeglob, is sufficiently ordinary, and is only referencedfrom its package. This function is meant to be used when a GV has beenlooked up in part to see what was there, causing upgrading, but basedon what was found it turns out that the real GV isn't required after all.

    If gv is a completely empty typeglob, it is deleted from the stash.

    If gv is a typeglob containing only a sufficiently-ordinary constantsub, the typeglob is replaced with a scalar-reference placeholder thatmore compactly represents the same thing.

    NOTE: this function is experimental and may change or beremoved without notice.

    1. voidgv_try_downgrade(GV* gv)

Hash Manipulation Functions

  • hv_ename_add

    Adds a name to a stash's internal list of effective names. Seehv_ename_delete.

    This is called when a stash is assigned to a new location in the symboltable.

    1. voidhv_ename_add(HV *hv, const char *name, U32 len,
    2. U32 flags)
  • hv_ename_delete

    Removes a name from a stash's internal list of effective names. If this isthe name returned by HvENAME, then another name in the list will takeits place (HvENAME will use it).

    This is called when a stash is deleted from the symbol table.

    1. voidhv_ename_delete(HV *hv, const char *name,
    2. U32 len, U32 flags)
  • refcounted_he_chain_2hv

    Generates and returns a HV * representing the content of arefcounted_he chain.flags is currently unused and must be zero.

    1. HV *refcounted_he_chain_2hv(
    2. const struct refcounted_he *c, U32 flags
    3. )
  • refcounted_he_fetch_pv

    Like refcounted_he_fetch_pvn, but takes a nul-terminated stringinstead of a string/length pair.

    1. SV *refcounted_he_fetch_pv(
    2. const struct refcounted_he *chain,
    3. const char *key, U32 hash, U32 flags
    4. )
  • refcounted_he_fetch_pvn

    Search along a refcounted_he chain for an entry with the key specifiedby keypv and keylen. If flags has the REFCOUNTED_HE_KEY_UTF8bit set, the key octets are interpreted as UTF-8, otherwise theyare interpreted as Latin-1. hash is a precomputed hash of the keystring, or zero if it has not been precomputed. Returns a mortal scalarrepresenting the value associated with the key, or &PL_sv_placeholderif there is no value associated with the key.

    1. SV *refcounted_he_fetch_pvn(
    2. const struct refcounted_he *chain,
    3. const char *keypv, STRLEN keylen, U32 hash,
    4. U32 flags
    5. )
  • refcounted_he_fetch_pvs

    Like refcounted_he_fetch_pvn, but takes a literal string instead ofa string/length pair, and no precomputed hash.

    1. SV *refcounted_he_fetch_pvs(
    2. const struct refcounted_he *chain,
    3. const char *key, U32 flags
    4. )
  • refcounted_he_fetch_sv

    Like refcounted_he_fetch_pvn, but takes a Perl scalar instead of astring/length pair.

    1. SV *refcounted_he_fetch_sv(
    2. const struct refcounted_he *chain, SV *key,
    3. U32 hash, U32 flags
    4. )
  • refcounted_he_free

    Decrements the reference count of a refcounted_he by one. If thereference count reaches zero the structure's memory is freed, which(recursively) causes a reduction of its parent refcounted_he'sreference count. It is safe to pass a null pointer to this function:no action occurs in this case.

    1. voidrefcounted_he_free(struct refcounted_he *he)
  • refcounted_he_inc

    Increment the reference count of a refcounted_he. The pointer to therefcounted_he is also returned. It is safe to pass a null pointerto this function: no action occurs and a null pointer is returned.

    1. struct refcounted_he * refcounted_he_inc(
    2. struct refcounted_he *he
    3. )
  • refcounted_he_new_pv

    Like refcounted_he_new_pvn, but takes a nul-terminated string insteadof a string/length pair.

    1. struct refcounted_he * refcounted_he_new_pv(
    2. struct refcounted_he *parent,
    3. const char *key, U32 hash,
    4. SV *value, U32 flags
    5. )
  • refcounted_he_new_pvn

    Creates a new refcounted_he. This consists of a single key/valuepair and a reference to an existing refcounted_he chain (which maybe empty), and thus forms a longer chain. When using the longer chain,the new key/value pair takes precedence over any entry for the same keyfurther along the chain.

    The new key is specified by keypv and keylen. If flags hasthe REFCOUNTED_HE_KEY_UTF8 bit set, the key octets are interpretedas UTF-8, otherwise they are interpreted as Latin-1. hash isa precomputed hash of the key string, or zero if it has not beenprecomputed.

    value is the scalar value to store for this key. value is copiedby this function, which thus does not take ownership of any referenceto it, and later changes to the scalar will not be reflected in thevalue visible in the refcounted_he. Complex types of scalar will notbe stored with referential integrity, but will be coerced to strings.value may be either null or &PL_sv_placeholder to indicate that novalue is to be associated with the key; this, as with any non-null value,takes precedence over the existence of a value for the key further alongthe chain.

    parent points to the rest of the refcounted_he chain to beattached to the new refcounted_he. This function takes ownershipof one reference to parent, and returns one reference to the newrefcounted_he.

    1. struct refcounted_he * refcounted_he_new_pvn(
    2. struct refcounted_he *parent,
    3. const char *keypv,
    4. STRLEN keylen, U32 hash,
    5. SV *value, U32 flags
    6. )
  • refcounted_he_new_pvs

    Like refcounted_he_new_pvn, but takes a literal string instead ofa string/length pair, and no precomputed hash.

    1. struct refcounted_he * refcounted_he_new_pvs(
    2. struct refcounted_he *parent,
    3. const char *key, SV *value,
    4. U32 flags
    5. )
  • refcounted_he_new_sv

    Like refcounted_he_new_pvn, but takes a Perl scalar instead of astring/length pair.

    1. struct refcounted_he * refcounted_he_new_sv(
    2. struct refcounted_he *parent,
    3. SV *key, U32 hash, SV *value,
    4. U32 flags
    5. )

IO Functions

  • start_glob

    Function called by do_readline to spawn a glob (or do the glob insideperl on VMS). This code used to be inline, but now perl uses File::Globthis glob starter is only used by miniperl during the build process.Moving it away shrinks pp_hot.c; shrinking pp_hot.c helps speed perl up.

    NOTE: this function is experimental and may change or beremoved without notice.

    1. PerlIO*start_glob(SV *tmpglob, IO *io)

Magical Functions

  • magic_clearhint

    Triggered by a delete from %^H, records the key toPL_compiling.cop_hints_hash.

    1. intmagic_clearhint(SV* sv, MAGIC* mg)
  • magic_clearhints

    Triggered by clearing %^H, resets PL_compiling.cop_hints_hash.

    1. intmagic_clearhints(SV* sv, MAGIC* mg)
  • magic_methcall

    Invoke a magic method (like FETCH).

    sv and mg are the tied thingy and the tie magic.

    meth is the name of the method to call.

    argc is the number of args (in addition to $self) to pass to the method.

    The flags can be:

    1. G_DISCARD invoke method with G_DISCARD flag and don't
    2. return a value
    3. G_UNDEF_FILL fill the stack with argc pointers to
    4. PL_sv_undef

    The arguments themselves are any values following the flags argument.

    Returns the SV (if any) returned by the method, or NULL on failure.

    1. SV*magic_methcall(SV *sv, const MAGIC *mg,
    2. const char *meth, U32 flags,
    3. U32 argc, ...)
  • magic_sethint

    Triggered by a store to %^H, records the key/value pair toPL_compiling.cop_hints_hash. It is assumed that hints aren't storinganything that would need a deep copy. Maybe we should warn if we find areference.

    1. intmagic_sethint(SV* sv, MAGIC* mg)
  • mg_localize

    Copy some of the magic from an existing SV to new localized version of thatSV. Container magic (eg %ENV, $1, tie) gets copied, value magic doesn't (egtaint, pos).

    If setmagic is false then no set magic will be called on the new (empty) SV.This typically means that assignment will soon follow (e.g. 'local $x = $y'),and that will handle the magic.

    1. voidmg_localize(SV* sv, SV* nsv, bool setmagic)

MRO Functions

  • mro_get_linear_isa_dfs

    Returns the Depth-First Search linearization of @ISAthe given stash. The return value is a read-only AV*.level should be 0 (it is used internally in thisfunction's recursion).

    You are responsible for SvREFCNT_inc() on thereturn value if you plan to store it anywheresemi-permanently (otherwise it might be deletedout from under you the next time the cache isinvalidated).

    1. AV*mro_get_linear_isa_dfs(HV* stash, U32 level)
  • mro_isa_changed_in

    Takes the necessary steps (cache invalidations, mostly)when the @ISA of the given package has changed. Invokedby the setisa magic, should not need to invoke directly.

    1. voidmro_isa_changed_in(HV* stash)
  • mro_package_moved

    Call this function to signal to a stash that it has been assigned toanother spot in the stash hierarchy. stash is the stash that has beenassigned. oldstash is the stash it replaces, if any. gv is the globthat is actually being assigned to.

    This can also be called with a null first argument toindicate that oldstash has been deleted.

    This function invalidates isa caches on the old stash, on all subpackagesnested inside it, and on the subclasses of all those, includingnon-existent packages that have corresponding entries in stash.

    It also sets the effective names (HvENAME) on all the stashes asappropriate.

    If the gv is present and is not in the symbol table, then this functionsimply returns. This checked will be skipped if flags & 1.

    1. voidmro_package_moved(HV * const stash,
    2. HV * const oldstash,
    3. const GV * const gv,
    4. U32 flags)

Optree Manipulation Functions

  • finalize_optree

    This function finalizes the optree. Should be called directly afterthe complete optree is built. It does some additionalchecking which can't be done in the normal ck_xxx functions and makesthe tree thread-safe.

    1. voidfinalize_optree(OP* o)

Pad Data Structures

  • CX_CURPAD_SAVE

    Save the current pad in the given context block structure.

    1. voidCX_CURPAD_SAVE(struct context)
  • CX_CURPAD_SV

    Access the SV at offset po in the saved current pad in the givencontext block structure (can be used as an lvalue).

    1. SV *CX_CURPAD_SV(struct context, PADOFFSET po)
  • PAD_BASE_SV

    Get the value from slot po in the base (DEPTH=1) pad of a padlist

    1. SV *PAD_BASE_SV(PADLIST padlist, PADOFFSET po)
  • PAD_CLONE_VARS

    Clone the state variables associated with running and compiling pads.

    1. voidPAD_CLONE_VARS(PerlInterpreter *proto_perl,
    2. CLONE_PARAMS* param)
  • PAD_COMPNAME_FLAGS

    Return the flags for the current compiling pad nameat offset po. Assumes a valid slot entry.

    1. U32PAD_COMPNAME_FLAGS(PADOFFSET po)
  • PAD_COMPNAME_GEN

    The generation number of the name at offset po in the currentcompiling pad (lvalue). Note that SvUVX is hijacked for this purpose.

    1. STRLENPAD_COMPNAME_GEN(PADOFFSET po)
  • PAD_COMPNAME_GEN_set

    Sets the generation number of the name at offset po in the currentling pad (lvalue) to gen. Note that SvUV_set is hijacked for this purpose.

    1. STRLENPAD_COMPNAME_GEN_set(PADOFFSET po, int gen)
  • PAD_COMPNAME_OURSTASH

    Return the stash associated with an our variable.Assumes the slot entry is a valid our lexical.

    1. HV *PAD_COMPNAME_OURSTASH(PADOFFSET po)
  • PAD_COMPNAME_PV

    Return the name of the current compiling pad nameat offset po. Assumes a valid slot entry.

    1. char *PAD_COMPNAME_PV(PADOFFSET po)
  • PAD_COMPNAME_TYPE

    Return the type (stash) of the current compiling pad name at offsetpo. Must be a valid name. Returns null if not typed.

    1. HV *PAD_COMPNAME_TYPE(PADOFFSET po)
  • pad_peg

    When PERL_MAD is enabled, this is a small no-op function that gets calledat the start of each pad-related function. It can be breakpointed totrack all pad operations. The parameter is a string indicating the typeof pad operation being performed.

    NOTE: this function is experimental and may change or beremoved without notice.

    1. voidpad_peg(const char *s)
  • PAD_RESTORE_LOCAL

    Restore the old pad saved into the local variable opad by PAD_SAVE_LOCAL()

    1. voidPAD_RESTORE_LOCAL(PAD *opad)
  • PAD_SAVE_LOCAL

    Save the current pad to the local variable opad, then make thecurrent pad equal to npad

    1. voidPAD_SAVE_LOCAL(PAD *opad, PAD *npad)
  • PAD_SAVE_SETNULLPAD

    Save the current pad then set it to null.

    1. voidPAD_SAVE_SETNULLPAD()
  • PAD_SETSV

    Set the slot at offset po in the current pad to sv

    1. SV *PAD_SETSV(PADOFFSET po, SV* sv)
  • PAD_SET_CUR

    Set the current pad to be pad n in the padlist, savingthe previous current pad. NB currently this macro expands to a string toolong for some compilers, so it's best to replace it with

    1. SAVECOMPPAD();
    2. PAD_SET_CUR_NOSAVE(padlist,n);
    3. voidPAD_SET_CUR(PADLIST padlist, I32 n)
  • PAD_SET_CUR_NOSAVE

    like PAD_SET_CUR, but without the save

    1. voidPAD_SET_CUR_NOSAVE(PADLIST padlist, I32 n)
  • PAD_SV

    Get the value at offset po in the current pad

    1. voidPAD_SV(PADOFFSET po)
  • PAD_SVl

    Lightweight and lvalue version of PAD_SV.Get or set the value at offset po in the current pad.Unlike PAD_SV, does not print diagnostics with -DX.For internal use only.

    1. SV *PAD_SVl(PADOFFSET po)
  • SAVECLEARSV

    Clear the pointed to pad value on scope exit. (i.e. the runtime action of 'my')

    1. voidSAVECLEARSV(SV **svp)
  • SAVECOMPPAD

    save PL_comppad and PL_curpad

    1. voidSAVECOMPPAD()
  • SAVEPADSV

    Save a pad slot (used to restore after an iteration)

    XXX DAPM it would make more sense to make the arg a PADOFFSETvoidSAVEPADSV(PADOFFSET po)

Per-Interpreter Variables

  • PL_DBsingle

    When Perl is run in debugging mode, with the -d switch, this SV is aboolean which indicates whether subs are being single-stepped.Single-stepping is automatically turned on after every step. This is the Cvariable which corresponds to Perl's $DB::single variable. SeePL_DBsub.

    1. SV *PL_DBsingle
  • PL_DBsub

    When Perl is run in debugging mode, with the -d switch, this GV containsthe SV which holds the name of the sub being debugged. This is the Cvariable which corresponds to Perl's $DB::sub variable. SeePL_DBsingle.

    1. GV *PL_DBsub
  • PL_DBtrace

    Trace variable used when Perl is run in debugging mode, with the -dswitch. This is the C variable which corresponds to Perl's $DB::tracevariable. See PL_DBsingle.

    1. SV *PL_DBtrace
  • PL_dowarn

    The C variable which corresponds to Perl's $^W warning variable.

    1. boolPL_dowarn
  • PL_last_in_gv

    The GV which was last used for a filehandle input operation. (<FH>)

    1. GV*PL_last_in_gv
  • PL_ofsgv

    The glob containing the output field separator - *, in Perl space.

    1. GV*PL_ofsgv
  • PL_rs

    The input record separator - $/ in Perl space.

    1. SV*PL_rs

Stack Manipulation Macros

  • djSP

    Declare Just SP. This is actually identical to dSP, and declaresa local copy of perl's stack pointer, available via the SP macro.See SP. (Available for backward source code compatibility with theold (Perl 5.005) thread model.)

    1. djSP;
  • LVRET

    True if this op will be the return value of an lvalue subroutine

SV Manipulation Functions

  • sv_add_arena

    Given a chunk of memory, link it to the head of the list of arenas,and split it into a list of free SVs.

    1. voidsv_add_arena(char *const ptr, const U32 size,
    2. const U32 flags)
  • sv_clean_all

    Decrement the refcnt of each remaining SV, possibly triggering acleanup. This function may have to be called multiple times to freeSVs which are in complex self-referential hierarchies.

    1. I32sv_clean_all()
  • sv_clean_objs

    Attempt to destroy all objects not yet freed.

    1. voidsv_clean_objs()
  • sv_free_arenas

    Deallocate the memory used by all arenas. Note that all the individual SVheads and bodies within the arenas must already have been freed.

    1. voidsv_free_arenas()

SV-Body Allocation

  • sv_2num

    Return an SV with the numeric value of the source SV, doing any necessaryreference or overload conversion. You must use the SvNUM(sv) macro toaccess this function.

    NOTE: this function is experimental and may change or beremoved without notice.

    1. SV*sv_2num(SV *const sv)
  • sv_ref

    Returns a SV describing what the SV passed in is a reference to.

    1. SV*sv_ref(SV *dst, const SV *const sv,
    2. const int ob)

Unicode Support

  • find_uninit_var

    Find the name of the undefined variable (if any) that caused the operatorto issue a "Use of uninitialized value" warning.If match is true, only return a name if its value matches uninit_sv.So roughly speaking, if a unary operator (such as OP_COS) generates awarning, then following the direct child of the op may yield anOP_PADSV or OP_GV that gives the name of the undefined variable. On theother hand, with OP_ADD there are two branches to follow, so we only printthe variable name if we get an exact match.

    The name is returned as a mortal SV.

    Assumes that PL_op is the op that originally triggered the error, and thatPL_comppad/PL_curpad points to the currently executing pad.

    NOTE: this function is experimental and may change or beremoved without notice.

    1. SV*find_uninit_var(const OP *const obase,
    2. const SV *const uninit_sv,
    3. bool top)
  • report_uninit

    Print appropriate "Use of uninitialized variable" warning.

    1. voidreport_uninit(const SV *uninit_sv)

Undocumented functions

The following functions are currently undocumented. If you use one ofthem, you may wish to consider creating and submitting documentation forit.

  • _add_range_to_invlist
  • _core_swash_init
  • _invlist_array_init
  • _invlist_contents
  • _invlist_intersection
  • _invlist_intersection_maybe_complement_2nd
  • _invlist_invert
  • _invlist_invert_prop
  • _invlist_populate_swatch
  • _invlist_subtract
  • _invlist_union
  • _invlist_union_maybe_complement_2nd
  • _is_utf8__perl_idstart
  • _new_invlist
  • _swash_inversion_hash
  • _swash_to_invlist
  • _to_fold_latin1
  • _to_upper_title_latin1
  • aassign_common_vars
  • add_cp_to_invlist
  • addmad
  • allocmy
  • amagic_is_enabled
  • append_madprops
  • apply
  • av_reify
  • bind_match
  • block_end
  • block_start
  • boot_core_PerlIO
  • boot_core_UNIVERSAL
  • boot_core_mro
  • cando
  • check_utf8_print
  • ck_entersub_args_core
  • convert
  • coresub_op
  • create_eval_scope
  • cv_ckproto_len_flags
  • cvgv_set
  • cvstash_set
  • deb_stack_all
  • delete_eval_scope
  • die_unwind
  • do_aexec
  • do_aexec5
  • do_eof
  • do_exec
  • do_exec3
  • do_execfree
  • do_ipcctl
  • do_ipcget
  • do_msgrcv
  • do_msgsnd
  • do_ncmp
  • do_op_xmldump
  • do_pmop_xmldump
  • do_print
  • do_readline
  • do_seek
  • do_semop
  • do_shmio
  • do_sysseek
  • do_tell
  • do_trans
  • do_vecget
  • do_vecset
  • do_vop
  • dofile
  • dump_all_perl
  • dump_packsubs_perl
  • dump_sub_perl
  • dump_sv_child
  • emulate_cop_io
  • feature_is_enabled
  • find_rundefsv2
  • find_script
  • free_tied_hv_pool
  • get_db_sub
  • get_debug_opts
  • get_hash_seed
  • get_invlist_iter_addr
  • get_invlist_len_addr
  • get_invlist_version_id_addr
  • get_invlist_zero_addr
  • get_no_modify
  • get_opargs
  • get_re_arg
  • getenv_len
  • hfree_next_entry
  • hv_backreferences_p
  • hv_kill_backrefs
  • hv_undef_flags
  • init_argv_symbols
  • init_dbargs
  • init_debugger
  • invert
  • invlist_array
  • invlist_clone
  • invlist_iterinit
  • invlist_len
  • invlist_max
  • invlist_set_len
  • invlist_trim
  • io_close
  • is_utf8_X_L
  • is_utf8_X_LV
  • is_utf8_X_LVT
  • is_utf8_X_LV_LVT_V
  • is_utf8_X_T
  • is_utf8_X_V
  • is_utf8_X_begin
  • is_utf8_X_extend
  • is_utf8_X_non_hangul
  • is_utf8_X_prepend
  • jmaybe
  • keyword
  • keyword_plugin_standard
  • list
  • localize
  • mad_free
  • madlex
  • madparse
  • magic_clear_all_env
  • magic_clearenv
  • magic_clearisa
  • magic_clearpack
  • magic_clearsig
  • magic_existspack
  • magic_freearylen_p
  • magic_freeovrld
  • magic_get
  • magic_getarylen
  • magic_getdefelem
  • magic_getnkeys
  • magic_getpack
  • magic_getpos
  • magic_getsig
  • magic_getsubstr
  • magic_gettaint
  • magic_getuvar
  • magic_getvec
  • magic_killbackrefs
  • magic_len
  • magic_nextpack
  • magic_regdata_cnt
  • magic_regdatum_get
  • magic_regdatum_set
  • magic_scalarpack
  • magic_set
  • magic_set_all_env
  • magic_setamagic
  • magic_setarylen
  • magic_setcollxfrm
  • magic_setdbline
  • magic_setdefelem
  • magic_setenv
  • magic_setisa
  • magic_setmglob
  • magic_setnkeys
  • magic_setpack
  • magic_setpos
  • magic_setregexp
  • magic_setsig
  • magic_setsubstr
  • magic_settaint
  • magic_setutf8
  • magic_setuvar
  • magic_setvec
  • magic_setvstring
  • magic_sizepack
  • magic_wipepack
  • malloc_good_size
  • malloced_size
  • mem_collxfrm
  • mode_from_discipline
  • more_bodies
  • mro_meta_dup
  • mro_meta_init
  • munge_qwlist_to_paren_list
  • my_attrs
  • my_betoh16
  • my_betoh32
  • my_betoh64
  • my_betohi
  • my_betohl
  • my_betohs
  • my_clearenv
  • my_htobe16
  • my_htobe32
  • my_htobe64
  • my_htobei
  • my_htobel
  • my_htobes
  • my_htole16
  • my_htole32
  • my_htole64
  • my_htolei
  • my_htolel
  • my_htoles
  • my_letoh16
  • my_letoh32
  • my_letoh64
  • my_letohi
  • my_letohl
  • my_letohs
  • my_lstat_flags
  • my_stat_flags
  • my_swabn
  • my_unexec
  • newATTRSUB_flags
  • newGP
  • newMADPROP
  • newMADsv
  • newTOKEN
  • newXS_len_flags
  • new_warnings_bitfield
  • nextargv
  • oopsAV
  • oopsHV
  • op_clear
  • op_const_sv
  • op_getmad
  • op_getmad_weak
  • op_integerize
  • op_lvalue_flags
  • op_refcnt_dec
  • op_refcnt_inc
  • op_std_init
  • op_xmldump
  • package
  • package_version
  • parse_unicode_opts
  • parser_free
  • peep
  • pending_Slabs_to_ro
  • pmop_xmldump
  • pmruntime
  • populate_isa
  • prepend_madprops
  • qerror
  • reg_named_buff
  • reg_named_buff_iter
  • reg_numbered_buff_fetch
  • reg_numbered_buff_length
  • reg_numbered_buff_store
  • reg_qr_package
  • reg_temp_copy
  • regcurly
  • regprop
  • report_evil_fh
  • report_redefined_cv
  • report_wrongway_fh
  • rpeep
  • rsignal_restore
  • rsignal_save
  • rxres_save
  • same_dirent
  • sawparens
  • scalar
  • scalarvoid
  • set_regclass_bit
  • sighandler
  • softref2xv
  • sub_crush_depth
  • sv_add_backref
  • sv_catxmlpv
  • sv_catxmlpvn
  • sv_catxmlsv
  • sv_compile_2op_is_broken
  • sv_del_backref
  • sv_free2
  • sv_kill_backrefs
  • sv_sethek
  • sv_setsv_cow
  • sv_unglob
  • sv_xmlpeek
  • tied_method
  • token_free
  • token_getmad
  • translate_substr_offsets
  • try_amagic_bin
  • try_amagic_un
  • unshare_hek
  • utilize
  • varname
  • vivify_defelem
  • vivify_ref
  • wait4pid
  • was_lvalue_sub
  • watch
  • write_to_stderr
  • xmldump_all
  • xmldump_all_perl
  • xmldump_eval
  • xmldump_form
  • xmldump_indent
  • xmldump_packsubs
  • xmldump_packsubs_perl
  • xmldump_sub
  • xmldump_sub_perl
  • xmldump_vindent
  • xs_apiversion_bootcheck
  • xs_version_bootcheck
  • yyerror
  • yyerror_pv
  • yyerror_pvn
  • yylex
  • yyparse
  • yyunlex

AUTHORS

The autodocumentation system was originally added to the Perl core byBenjamin Stuhl. Documentation is by whoever was kind enough todocument their functions.

SEE ALSO

perlguts, perlapi

 
Source : perldoc.perl.org - Official documentation for the Perl programming language
Site maintained by Jon Allen (JJ)     See the project page for more details
Documentation maintained by the Perl 5 Porters
(Sebelumnya) Autogenerated documentation fo ...Perl method resolution plugin ... (Berikutnya)