1PERLINTERN(1)          Perl Programmers Reference Guide          PERLINTERN(1)
2
3
4

NAME

6       perlintern - autogenerated documentation of purely internal Perl
7       functions
8

DESCRIPTION

10       This file is the autogenerated documentation of functions in the Perl
11       interpreter that are documented using Perl's internal documentation
12       format but are not marked as part of the Perl API.  In other words,
13       they are not for use in extensions!
14
15       It has the same sections as perlapi, though some may be empty.
16

AV Handling

18       "av_fetch_simple"
19           This is a cut-down version of av_fetch that assumes that the array
20           is very straightforward - no magic, not readonly, and AvREAL - and
21           that "key" is not negative. This function MUST NOT be used in
22           situations where any of those assumptions may not hold.
23
24           Returns the SV at the specified index in the array.  The "key" is
25           the index.  If lval is true, you are guaranteed to get a real SV
26           back (in case it wasn't real before), which you can then modify.
27           Check that the return value is non-null before dereferencing it to
28           a "SV*".
29
30           The rough perl equivalent is $myarray[$key].
31
32            SV **  av_fetch_simple(AV *av, SSize_t key, I32 lval)
33
34       "AvFILLp"
35           If the array "av" is empty, this returns -1; otherwise it returns
36           the maximum value of the indices of all the array elements which
37           are currently defined in "av".  It does not handle magic, hence the
38           "p" private indication in its name.
39
40            SSize_t  AvFILLp(AV* av)
41
42       "av_new_alloc"
43           This implements ""newAV_alloc_x"" in perlapi and ""newAV_alloc_xz""
44           in perlapi, which are the public API for this functionality.
45
46           Creates a new AV and allocates its SV* array.
47
48           This is similar to, but more efficient than doing:
49
50               AV *av = newAV();
51               av_extend(av, key);
52
53           The size parameter is used to pre-allocate a SV* array large enough
54           to hold at least elements "0..(size-1)".  "size" must be at least
55           1.
56
57           The "zeroflag" parameter controls whether or not the array is NULL
58           initialized.
59
60            AV *  av_new_alloc(SSize_t size, bool zeroflag)
61
62       "av_store_simple"
63           This is a cut-down version of av_store that assumes that the array
64           is very straightforward - no magic, not readonly, and AvREAL - and
65           that "key" is not negative. This function MUST NOT be used in
66           situations where any of those assumptions may not hold.
67
68           Stores an SV in an array.  The array index is specified as "key".
69           It can be dereferenced to get the "SV*" that was stored there (=
70           "val")).
71
72           Note that the caller is responsible for suitably incrementing the
73           reference count of "val" before the call.
74
75           Approximate Perl equivalent: "splice(@myarray, $key, 1, $val)".
76
77            SV **  av_store_simple(AV *av, SSize_t key, SV *val)
78

Callback Functions

80       "dowantarray"
81           "DEPRECATED!"  It is planned to remove "dowantarray" from a future
82           release of Perl.  Do not use it for new code; remove it from
83           existing code.
84
85           Implements the deprecated ""GIMME"" in perlapi.
86
87            U8  dowantarray()
88
89       "leave_scope"
90           Implements "LEAVE_SCOPE" which you should use instead.
91
92            void  leave_scope(I32 base)
93
94       "magic_freedestruct"
95           This function is called via magic to implement the
96           mortal_destructor_sv() and mortal_destructor_x() functions. It
97           should not be called directly and has no user servicable parts.
98
99            int  magic_freedestruct(SV *sv, MAGIC *mg)
100
101       "mortal_svfunc_x"
102           This function arranges for a C function reference to be called at
103           the end of the current statement with the arguments provided. It is
104           a wrapper around mortal_destructor_sv() which ensures that the
105           latter function is called appropriately.
106
107           Be aware that there is a signficant difference in timing between
108           the end of the current statement and the end of the current pseudo
109           block. If you are looking for a mechanism to trigger a function at
110           the end of the current pseudo block you should look at
111           SAVEDESTRUCTORX() instead of this function.
112
113            void  mortal_svfunc_x(SVFUNC_t f, SV *p)
114
115       "pop_scope"
116           Implements ""LEAVE"" in perlapi
117
118            void  pop_scope()
119
120       "push_scope"
121           Implements ""ENTER"" in perlapi
122
123            void  push_scope()
124
125       "save_adelete"
126           Implements "SAVEADELETE".
127
128            void  save_adelete(AV *av, SSize_t key)
129
130       "save_freercpv"
131           Implements "SAVEFREERCPV".
132
133           Saves and frees a refcounted string. Calls rcpv_free() on the
134           argument when the current pseudo block is finished.
135
136            void  save_freercpv(char *rcpv)
137
138       "save_generic_pvref"
139           Implements "SAVEGENERICPV".
140
141           Like save_pptr(), but also Safefree()s the new value if it is
142           different from the old one.  Can be used to restore a global char*
143           to its prior contents, freeing new value.
144
145            void  save_generic_pvref(char **str)
146
147       "save_generic_svref"
148           Implements "SAVEGENERICSV".
149
150           Like save_sptr(), but also SvREFCNT_dec()s the new value.  Can be
151           used to restore a global SV to its prior contents, freeing new
152           value.
153
154            void  save_generic_svref(SV **sptr)
155
156       "save_hdelete"
157           Implements "SAVEHDELETE".
158
159            void  save_hdelete(HV *hv, SV *keysv)
160
161       "save_hints"
162           Implements "SAVEHINTS".
163
164            void  save_hints()
165
166       "save_op"
167           Implements "SAVEOP".
168
169            void  save_op()
170
171       "save_padsv_and_mortalize"
172           Implements "SAVEPADSVANDMORTALIZE".
173
174            void  save_padsv_and_mortalize(PADOFFSET off)
175
176       "save_pushptr"
177           The refcnt of object "ptr" will be decremented at the end of the
178           current pseudo-block.  "type" gives the type of "ptr", expressed as
179           one of the constants in scope.h whose name begins with "SAVEt_".
180
181           This is the underlying implementation of several macros, like
182           "SAVEFREESV".
183
184            void  save_pushptr(void * const ptr, const int type)
185
186       "save_rcpv"
187           Implements "SAVERCPV".
188
189           Saves and restores a refcounted string, similar to what
190           save_generic_svref would do for a SV*. Can be used to restore a
191           refcounted string to its previous state. Performs the appropriate
192           refcount counting so that nothing should leak or be prematurely
193           freed.
194
195            void  save_rcpv(char **prcpv)
196
197       "save_scalar_at"
198           A helper function for localizing the SV referenced by *sptr.
199
200           If "SAVEf_KEEPOLDELEM" is set in in "flags", the function returns
201           the input scalar untouched.
202
203           Otherwise it replaces *sptr with a new "undef" scalar, and returns
204           that.  The new scalar will have the old one's magic (if any) copied
205           to it.  If there is such magic, and "SAVEf_SETMAGIC" is set in in
206           "flags", 'set' magic will be processed on the new scalar.  If
207           unset, 'set' magic will be skipped.  The latter typically means
208           that assignment will soon follow (e.g., 'local $x = $y'), and that
209           will handle the magic.
210
211            SV *  save_scalar_at(SV **sptr, const U32 flags)
212
213       "save_set_svflags"
214           Implements "SAVESETSVFLAGS".
215
216           Set the SvFLAGS specified by mask to the values in val
217
218            void  save_set_svflags(SV *sv, U32 mask, U32 val)
219
220       "save_shared_pvref"
221           Implements "SAVESHAREDPV".
222
223           Like save_generic_pvref(), but uses PerlMemShared_free() rather
224           than Safefree().  Can be used to restore a shared global char* to
225           its prior contents, freeing new value.
226
227            void  save_shared_pvref(char **str)
228
229       "save_vptr"
230           Implements "SAVEVPTR".
231
232            void  save_vptr(void *ptr)
233

Casting

235       There are currently no internal API items in Casting
236

Character case changing

238       There are currently no internal API items in Character case changing
239

Character classification

241       There are currently no internal API items in Character classification
242

Compiler and Preprocessor information

244       There are currently no internal API items in Compiler and Preprocessor
245       information
246

Compiler directives

248       There are currently no internal API items in Compiler directives
249

Compile-time scope hooks

251       "BhkENTRY"
252           NOTE: "BhkENTRY" is experimental and may change or be removed
253           without notice.
254
255           Return an entry from the BHK structure.  "which" is a preprocessor
256           token indicating which entry to return.  If the appropriate flag is
257           not set this will return "NULL".  The type of the return value
258           depends on which entry you ask for.
259
260            void *  BhkENTRY(BHK *hk, token which)
261
262       "BhkFLAGS"
263           NOTE: "BhkFLAGS" is experimental and may change or be removed
264           without notice.
265
266           Return the BHK's flags.
267
268            U32  BhkFLAGS(BHK *hk)
269
270       "CALL_BLOCK_HOOKS"
271           NOTE: "CALL_BLOCK_HOOKS" is experimental and may change or be
272           removed without notice.
273
274           Call all the registered block hooks for type "which".  "which" is a
275           preprocessing token; the type of "arg" depends on "which".
276
277            void  CALL_BLOCK_HOOKS(token which, arg)
278

Concurrency

280       "CVf_SLABBED"
281       "CvROOT"
282       "CvSTART"
283           Described in perlguts.
284
285       "CX_CUR"
286           Described in perlguts.
287
288              CX_CUR()
289
290       "CXINC"
291           Described in perlguts.
292
293       "CX_LEAVE_SCOPE"
294           Described in perlguts.
295
296            void  CX_LEAVE_SCOPE(PERL_CONTEXT* cx)
297
298       "CX_POP"
299           Described in perlguts.
300
301            void  CX_POP(PERL_CONTEXT* cx)
302
303       "cxstack"
304           Described in perlguts.
305
306       "cxstack_ix"
307           Described in perlguts.
308
309       "CXt_BLOCK"
310       "CXt_EVAL"
311       "CXt_FORMAT"
312       "CXt_GIVEN"
313       "CXt_LOOP_ARY"
314       "CXt_LOOP_LAZYIV"
315       "CXt_LOOP_LAZYSV"
316       "CXt_LOOP_LIST"
317       "CXt_LOOP_PLAIN"
318       "CXt_NULL"
319       "CXt_SUB"
320       "CXt_SUBST"
321       "CXt_WHEN"
322           Described in perlguts.
323
324       "cx_type"
325           Described in perlguts.
326
327       "dounwind"
328           Described in perlguts.
329
330            void  dounwind(I32 cxix)
331
332       "my_fork"
333           This is for the use of "PerlProc_fork" as a wrapper for the C
334           library fork(2) on some platforms to hide some platform quirks.  It
335           should not be used except through "PerlProc_fork".
336
337            Pid_t  my_fork()
338
339       "PERL_CONTEXT"
340           Described in perlguts.
341

COPs and Hint Hashes

343       There are currently no internal API items in COPs and Hint Hashes
344

Custom Operators

346       "core_prototype"
347           This function assigns the prototype of the named core function to
348           "sv", or to a new mortal SV if "sv" is "NULL".  It returns the
349           modified "sv", or "NULL" if the core function has no prototype.
350           "code" is a code as returned by keyword().  It must not be equal to
351           0.
352
353            SV *  core_prototype(SV *sv, const char *name, const int code,
354                                 int * const opnum)
355

CV Handling

357       "CvREFCOUNTED_ANYSV"
358           If true, indicates that the "CvXSUBANY(cv).any_sv" member contains
359           an SV pointer whose reference count should be decremented when the
360           CV itself is freed.  In addition, cv_clone() will increment the
361           reference count, and sv_dup() will duplicate the entire pointed-to
362           SV if this flag is set.
363
364           Any CV that wraps an XSUB has an "ANY" union that the XSUB function
365           is free to use for its own purposes.  It may be the case that the
366           code wishes to store an SV in the "any_sv" member of this union.
367           By setting this flag, this SV reference will be properly reclaimed
368           or duplicated when the CV itself is.
369
370            bool  CvREFCOUNTED_ANYSV(CV *cv)
371
372       "CvREFCOUNTED_ANYSV_off"
373           Helper macro to turn off the "CvREFCOUNTED_ANYSV" flag.
374
375            void  CvREFCOUNTED_ANYSV_off(CV *cv)
376
377       "CvREFCOUNTED_ANYSV_on"
378           Helper macro to turn on the "CvREFCOUNTED_ANYSV" flag.
379
380            void  CvREFCOUNTED_ANYSV_on(CV *cv)
381
382       "CvWEAKOUTSIDE"
383           Each CV has a pointer, CvOUTSIDE(), to its lexically enclosing CV
384           (if any).  Because pointers to anonymous sub prototypes are stored
385           in "&" pad slots, it is a possible to get a circular reference,
386           with the parent pointing to the child and vice-versa.  To avoid the
387           ensuing memory leak, we do not increment the reference count of the
388           CV pointed to by "CvOUTSIDE" in the one specific instance that the
389           parent has a "&" pad slot pointing back to us.  In this case, we
390           set the "CvWEAKOUTSIDE" flag in the child.  This allows us to
391           determine under what circumstances we should decrement the refcount
392           of the parent when freeing the child.
393
394           There is a further complication with non-closure anonymous subs
395           (i.e. those that do not refer to any lexicals outside that sub).
396           In this case, the anonymous prototype is shared rather than being
397           cloned.  This has the consequence that the parent may be freed
398           while there are still active children, e.g.,
399
400               BEGIN { $a = sub { eval '$x' } }
401
402           In this case, the BEGIN is freed immediately after execution since
403           there are no active references to it: the anon sub prototype has
404           "CvWEAKOUTSIDE" set since it's not a closure, and $a points to the
405           same CV, so it doesn't contribute to BEGIN's refcount either.  When
406           $a is executed, the "eval '$x'" causes the chain of "CvOUTSIDE"s to
407           be followed, and the freed BEGIN is accessed.
408
409           To avoid this, whenever a CV and its associated pad is freed, any
410           "&" entries in the pad are explicitly removed from the pad, and if
411           the refcount of the pointed-to anon sub is still positive, then
412           that child's "CvOUTSIDE" is set to point to its grandparent.  This
413           will only occur in the single specific case of a non-closure anon
414           prototype having one or more active references (such as $a above).
415
416           One other thing to consider is that a CV may be merely undefined
417           rather than freed, eg "undef &foo".  In this case, its refcount may
418           not have reached zero, but we still delete its pad and its "CvROOT"
419           etc.  Since various children may still have their "CvOUTSIDE"
420           pointing at this undefined CV, we keep its own "CvOUTSIDE" for the
421           time being, so that the chain of lexical scopes is unbroken.  For
422           example, the following should print 123:
423
424               my $x = 123;
425               sub tmp { sub { eval '$x' } }
426               my $a = tmp();
427               undef &tmp;
428               print  $a->();
429
430            bool  CvWEAKOUTSIDE(CV *cv)
431
432       "docatch"
433           Interpose, for the current op and RUNOPS loop,
434
435               - a new JMPENV stack catch frame, and
436               - an inner RUNOPS loop to run all the remaining ops following the
437                 current PL_op.
438
439           Then handle any exceptions raised while in that loop.  For a caught
440           eval at this level, re-enter the loop with the specified restart op
441           (i.e. the op following the OP_LEAVETRY etc); otherwise re-throw the
442           exception.
443
444           docatch() is intended to be used like this:
445
446               PP(pp_entertry)
447               {
448                   if (CATCH_GET)
449                       return docatch(Perl_pp_entertry);
450
451                   ... rest of function ...
452                   return PL_op->op_next;
453               }
454
455           If a new catch frame isn't needed, the op behaves normally.
456           Otherwise it calls docatch(), which recursively calls
457           pp_entertry(), this time with CATCH_GET() false, so the rest of the
458           body of the entertry is run. Then docatch() calls CALLRUNOPS()
459           which executes all the ops following the entertry. When the loop
460           finally finishes, control returns to docatch(), which pops the
461           JMPENV and returns to the parent pp_entertry(), which itself
462           immediately returns. Note that *all* subsequent ops are run within
463           the inner RUNOPS loop, not just the body of the eval. For example,
464           in
465
466               sub TIEARRAY { eval {1}; my $x }
467               tie @a, "main";
468
469           at the point the 'my' is executed, the C stack will look something
470           like:
471
472               #10 main()
473               #9  perl_run()              # JMPENV_PUSH level 1 here
474               #8  S_run_body()
475               #7  Perl_runops_standard()  # main RUNOPS loop
476               #6  Perl_pp_tie()
477               #5  Perl_call_sv()
478               #4  Perl_runops_standard()  # unguarded RUNOPS loop: no new JMPENV
479               #3  Perl_pp_entertry()
480               #2  S_docatch()             # JMPENV_PUSH level 2 here
481               #1  Perl_runops_standard()  # docatch()'s RUNOPs loop
482               #0  Perl_pp_padsv()
483
484           Basically, any section of the perl core which starts a RUNOPS loop
485           may make a promise that it will catch any exceptions and restart
486           the loop if necessary. If it's not prepared to do that (like
487           call_sv() isn't), then it sets CATCH_GET() to true, so that any
488           later eval-like code knows to set up a new handler and loop (via
489           docatch()).
490
491           See "Exception handing" in perlinterp for further details.
492
493            OP *  docatch(Perl_ppaddr_t firstpp)
494

Debugging

496       "comma_aDEPTH"
497           Some functions when compiled under DEBUGGING take an extra final
498           argument named "depth", indicating the C stack depth.  This
499           argument is omitted otherwise.  This macro expands to either
500           ", depth" under DEBUGGING, or to nothing at all when not under
501           DEBUGGING, reducing the number of "#ifdef"'s in the code.
502
503           The program is responsible for maintaining the correct value for
504           "depth".
505
506              comma_aDEPTH
507
508       "comma_pDEPTH"
509           This is used in the prototype declarations for functions that take
510           a ""comma_aDEPTH"" final parameter, much like "pTHX_" is used in
511           functions that take a thread context initial parameter.
512
513       "debop"
514           Implements -Dt perl command line option on OP "o".
515
516            I32  debop(const OP *o)
517
518       "debprof"
519           Called to indicate that "o" was executed, for profiling purposes
520           under the "-DP" command line option.
521
522            void  debprof(const OP *o)
523
524       "debprofdump"
525           Dumps the contents of the data collected by the "-DP" perl command
526           line option.
527
528            void  debprofdump()
529
530       "debug_aDEPTH"
531           Same as ""comma_aDEPTH"" but with no leading argument. Intended for
532           functions with no normal arguments, and used by ""comma_aDEPTH""
533           itself.
534
535              debug_aDEPTH
536
537       "debug_pDEPTH"
538           Same as ""comma_pDEPTH"" but with no leading argument. Intended for
539           functions with no normal arguments, and used by ""comma_pDEPTH""
540           itself.
541
542              debug_pDEPTH
543
544       "free_c_backtrace"
545           Deallocates a backtrace received from get_c_backtrace.
546
547            void  free_c_backtrace(Perl_c_backtrace *bt)
548
549       "get_c_backtrace"
550           Collects the backtrace (aka "stacktrace") into a single linear
551           malloced buffer, which the caller must Perl_free_c_backtrace().
552
553           Scans the frames back by "depth + skip", then drops the "skip"
554           innermost, returning at most "depth" frames.
555
556            Perl_c_backtrace *  get_c_backtrace(int max_depth, int skip)
557
558       "PL_DBsingle"
559           When Perl is run in debugging mode, with the -d switch, this SV is
560           a boolean which indicates whether subs are being single-stepped.
561           Single-stepping is automatically turned on after every step.  This
562           is the C variable which corresponds to Perl's $DB::single variable.
563           See "PL_DBsub".
564
565           On threaded perls, each thread has an independent copy of this
566           variable; each initialized at creation time with the current value
567           of the creating thread's copy.
568
569            SV *  PL_DBsingle
570
571       "PL_DBsub"
572           When Perl is run in debugging mode, with the -d switch, this GV
573           contains the SV which holds the name of the sub being debugged.
574           This is the C variable which corresponds to Perl's $DB::sub
575           variable.  See "PL_DBsingle".
576
577           On threaded perls, each thread has an independent copy of this
578           variable; each initialized at creation time with the current value
579           of the creating thread's copy.
580
581            GV *  PL_DBsub
582
583       "PL_DBtrace"
584           Trace variable used when Perl is run in debugging mode, with the -d
585           switch.  This is the C variable which corresponds to Perl's
586           $DB::trace variable.  See "PL_DBsingle".
587
588           On threaded perls, each thread has an independent copy of this
589           variable; each initialized at creation time with the current value
590           of the creating thread's copy.
591
592            SV *  PL_DBtrace
593
594       "runops_debug"
595           Described in perlguts.
596
597            int  runops_debug()
598
599       "runops_standard"
600           Described in perlguts.
601
602            int  runops_standard()
603

Display functions

605       "sv_peek"
606           Implements "SvPEEK"
607
608            char *  sv_peek(SV *sv)
609

Embedding, Threads, and Interpreter Cloning

611       "cv_dump"
612           dump the contents of a CV
613
614            void  cv_dump(const CV *cv, const char *title)
615
616       "cv_forget_slab"
617           When a CV has a reference count on its slab ("CvSLABBED"), it is
618           responsible for making sure it is freed.  (Hence, no two CVs should
619           ever have a reference count on the same slab.)  The CV only needs
620           to reference the slab during compilation.  Once it is compiled and
621           "CvROOT" attached, it has finished its job, so it can forget the
622           slab.
623
624            void  cv_forget_slab(CV *cv)
625
626       "do_dump_pad"
627           Dump the contents of a padlist
628
629            void  do_dump_pad(I32 level, PerlIO *file, PADLIST *padlist,
630                              int full)
631
632       "get_context"
633           Implements ""PERL_GET_CONTEXT"" in perlapi, which you should use
634           instead.
635
636            void *  get_context()
637
638       "pad_alloc_name"
639           Allocates a place in the currently-compiling pad (via "pad_alloc"
640           in perlapi) and then stores a name for that entry.  "name" is
641           adopted and becomes the name entry; it must already contain the
642           name string.  "typestash" and "ourstash" and the "padadd_STATE"
643           flag get added to "name".  None of the other processing of
644           "pad_add_name_pvn" in perlapi is done.  Returns the offset of the
645           allocated pad slot.
646
647            PADOFFSET  pad_alloc_name(PADNAME *name, U32 flags, HV *typestash,
648                                      HV *ourstash)
649
650       "pad_block_start"
651           Update the pad compilation state variables on entry to a new block.
652
653            void  pad_block_start(int full)
654
655       "pad_check_dup"
656           Check for duplicate declarations: report any of:
657
658                * a 'my' in the current scope with the same name;
659                * an 'our' (anywhere in the pad) with the same name and the
660                  same stash as 'ourstash'
661
662           "is_our" indicates that the name to check is an "our" declaration.
663
664            void  pad_check_dup(PADNAME *name, U32 flags, const HV *ourstash)
665
666       "pad_findlex"
667           Find a named lexical anywhere in a chain of nested pads.  Add fake
668           entries in the inner pads if it's found in an outer one.
669
670           Returns the offset in the bottom pad of the lex or the fake lex.
671           "cv" is the CV in which to start the search, and seq is the current
672           "cop_seq" to match against.  If "warn" is true, print appropriate
673           warnings.  The "out_"* vars return values, and so are pointers to
674           where the returned values should be stored.  "out_capture", if non-
675           null, requests that the innermost instance of the lexical is
676           captured; "out_name" is set to the innermost matched pad name or
677           fake pad name; "out_flags" returns the flags normally associated
678           with the "PARENT_FAKELEX_FLAGS" field of a fake pad name.
679
680           Note that pad_findlex() is recursive; it recurses up the chain of
681           CVs, then comes back down, adding fake entries as it goes.  It has
682           to be this way because fake names in anon prototypes have to store
683           in "xpadn_low" the index into the parent pad.
684
685            PADOFFSET  pad_findlex(const char *namepv, STRLEN namelen,
686                                   U32 flags, const CV *cv, U32 seq, int warn,
687                                   SV **out_capture, PADNAME **out_name,
688                                   int *out_flags)
689
690       "pad_fixup_inner_anons"
691           For any anon CVs in the pad, change "CvOUTSIDE" of that CV from
692           "old_cv" to "new_cv" if necessary.  Needed when a newly-compiled CV
693           has to be moved to a pre-existing CV struct.
694
695            void  pad_fixup_inner_anons(PADLIST *padlist, CV *old_cv,
696                                        CV *new_cv)
697
698       "pad_free"
699           Free the SV at offset po in the current pad.
700
701            void  pad_free(PADOFFSET po)
702
703       "pad_leavemy"
704           Cleanup at end of scope during compilation: set the max seq number
705           for lexicals in this scope and warn of any lexicals that never got
706           introduced.
707
708            OP *  pad_leavemy()
709
710       "padlist_dup"
711           Duplicates a pad.
712
713            PADLIST *  padlist_dup(PADLIST *srcpad, CLONE_PARAMS *param)
714
715       "padname_dup"
716           Duplicates a pad name.
717
718            PADNAME *  padname_dup(PADNAME *src, CLONE_PARAMS *param)
719
720       "padnamelist_dup"
721           Duplicates a pad name list.
722
723            PADNAMELIST *  padnamelist_dup(PADNAMELIST *srcpad,
724                                           CLONE_PARAMS *param)
725
726       "pad_push"
727           Push a new pad frame onto the padlist, unless there's already a pad
728           at this depth, in which case don't bother creating a new one.  Then
729           give the new pad an @_ in slot zero.
730
731            void  pad_push(PADLIST *padlist, int depth)
732
733       "pad_reset"
734           Mark all the current temporaries for reuse
735
736            void  pad_reset()
737
738       "pad_setsv"
739           Set the value at offset "po" in the current (compiling or
740           executing) pad.  Use the macro PAD_SETSV() rather than calling this
741           function directly.
742
743            void  pad_setsv(PADOFFSET po, SV *sv)
744
745       "pad_sv"
746           Get the value at offset "po" in the current (compiling or
747           executing) pad.  Use macro "PAD_SV" instead of calling this
748           function directly.
749
750            SV *  pad_sv(PADOFFSET po)
751
752       "pad_swipe"
753           Abandon the tmp in the current pad at offset "po" and replace with
754           a new one.
755
756            void  pad_swipe(PADOFFSET po, bool refadjust)
757
758       "set_context"
759           Implements ""PERL_SET_CONTEXT"" in perlapi, which you should use
760           instead.
761
762            void  set_context(void *t)
763
764       "si_dup"
765           Duplicate a stack info structure, returning a pointer to the cloned
766           object.
767
768            PERL_SI *  si_dup(PERL_SI *si, CLONE_PARAMS *param)
769
770       "ss_dup"
771           Duplicate the save stack, returning a pointer to the cloned object.
772
773            ANY *  ss_dup(PerlInterpreter *proto_perl, CLONE_PARAMS *param)
774

Errno

776       "dSAVEDERRNO"
777           Declare variables needed to save "errno" and any operating system
778           specific error number.
779
780            void  dSAVEDERRNO
781
782       "dSAVE_ERRNO"
783           Declare variables needed to save "errno" and any operating system
784           specific error number, and save them for optional later restoration
785           by "RESTORE_ERRNO".
786
787            void  dSAVE_ERRNO
788
789       "RESTORE_ERRNO"
790           Restore "errno" and any operating system specific error number that
791           was saved by "dSAVE_ERRNO" or "RESTORE_ERRNO".
792
793            void  RESTORE_ERRNO
794
795       "SAVE_ERRNO"
796           Save "errno" and any operating system specific error number for
797           optional later restoration by "RESTORE_ERRNO".  Requires
798           "dSAVEDERRNO" or "dSAVE_ERRNO" in scope.
799
800            void  SAVE_ERRNO
801
802       "SETERRNO"
803           Set "errno", and on VMS set "vaxc$errno".
804
805            void  SETERRNO(int errcode, int vmserrcode)
806

Exception Handling (simple) Macros

808       There are currently no internal API items in Exception Handling
809       (simple) Macros
810

Filesystem configuration values

812       There are currently no internal API items in Filesystem configuration
813       values
814

Floating point

816       There are currently no internal API items in Floating point
817

General Configuration

819       There are currently no internal API items in General Configuration
820

Global Variables

822       There are currently no internal API items in Global Variables
823

GV Handling and Stashes

825       "amagic_applies"
826           Check "sv" to see if the overloaded (active magic) operation
827           "method" applies to it. If the sv is not SvROK or it is not an
828           object then returns false, otherwise checks if the object is
829           blessed into a class supporting overloaded operations, and returns
830           true if a call to amagic_call() with this SV and the given method
831           would trigger an amagic operation, including via the overload
832           fallback rules or via nomethod. Thus a call like:
833
834               amagic_applies(sv, string_amg, AMG_unary)
835
836           would return true for an object with overloading set up in any of
837           the following ways:
838
839               use overload q("") => sub { ... };
840               use overload q(0+) => sub { ... }, fallback => 1;
841
842           and could be used to tell if a given object would stringify to
843           something other than the normal default ref stringification.
844
845           Note that the fact that this function returns TRUE does not mean
846           you can succesfully perform the operation with amagic_call(), for
847           instance any overloaded method might throw a fatal exception,
848           however if this function returns FALSE you can be confident that it
849           will NOT perform the given overload operation.
850
851           "method" is an integer enum, one of the values found in overload.h,
852           for instance "string_amg".
853
854           "flags" should be set to AMG_unary for unary operations.
855
856            bool  amagic_applies(SV *sv, int method, int flags)
857
858       "gp_dup"
859           Duplicate a typeglob, returning a pointer to the cloned object.
860
861            GP *  gp_dup(GP * const gp, CLONE_PARAMS * const param)
862
863       "gv_handler"
864           Implements "StashHANDLER", which you should use instead
865
866            CV *  gv_handler(HV *stash, I32 id)
867
868       "gv_stashsvpvn_cached"
869           Returns a pointer to the stash for a specified package, possibly
870           cached.  Implements both ""gv_stashpvn"" in perlapi and
871           ""gv_stashsv"" in perlapi.
872
873           Requires one of either "namesv" or "namepv" to be non-null.
874
875           If the flag "GV_CACHE_ONLY" is set, return the stash only if found
876           in the cache; see ""gv_stashpvn"" in perlapi for details on the
877           other "flags".
878
879           Note it is strongly preferred for "namesv" to be non-null, for
880           performance reasons.
881
882            HV *  gv_stashsvpvn_cached(SV *namesv, const char *name,
883                                       U32 namelen, I32 flags)
884
885       "gv_try_downgrade"
886           NOTE: "gv_try_downgrade" is experimental and may change or be
887           removed without notice.
888
889           If the typeglob "gv" can be expressed more succinctly, by having
890           something other than a real GV in its place in the stash, replace
891           it with the optimised form.  Basic requirements for this are that
892           "gv" is a real typeglob, is sufficiently ordinary, and is only
893           referenced from its package.  This function is meant to be used
894           when a GV has been looked up in part to see what was there, causing
895           upgrading, but based on what was found it turns out that the real
896           GV isn't required after all.
897
898           If "gv" is a completely empty typeglob, it is deleted from the
899           stash.
900
901           If "gv" is a typeglob containing only a sufficiently-ordinary
902           constant sub, the typeglob is replaced with a scalar-reference
903           placeholder that more compactly represents the same thing.
904
905            void  gv_try_downgrade(GV *gv)
906

Hook manipulation

908       There are currently no internal API items in Hook manipulation
909

HV Handling

911       "hv_eiter_p"
912           Implements "HvEITER" which you should use instead.
913
914           NOTE: "hv_eiter_p" must be explicitly called as "Perl_hv_eiter_p"
915           with an "aTHX_" parameter.
916
917            HE **  Perl_hv_eiter_p(pTHX_ HV *hv)
918
919       "hv_eiter_set"
920           Implements "HvEITER_set" which you should use instead.
921
922           NOTE: "hv_eiter_set" must be explicitly called as
923           "Perl_hv_eiter_set" with an "aTHX_" parameter.
924
925            void  Perl_hv_eiter_set(pTHX_ HV *hv, HE *eiter)
926
927       "hv_ename_add"
928           Adds a name to a stash's internal list of effective names.  See
929           "hv_ename_delete".
930
931           This is called when a stash is assigned to a new location in the
932           symbol table.
933
934            void  hv_ename_add(HV *hv, const char *name, U32 len, U32 flags)
935
936       "hv_ename_delete"
937           Removes a name from a stash's internal list of effective names.  If
938           this is the name returned by "HvENAME", then another name in the
939           list will take its place ("HvENAME" will use it).
940
941           This is called when a stash is deleted from the symbol table.
942
943            void  hv_ename_delete(HV *hv, const char *name, U32 len,
944                                  U32 flags)
945
946       "hv_fill"
947           Returns the number of hash buckets that happen to be in use.
948
949           This function implements the "HvFILL" macro which you should use
950           instead.
951
952           As of perl 5.25 this function is used only for debugging purposes,
953           and the number of used hash buckets is not in any way cached, thus
954           this function can be costly to execute as it must iterate over all
955           the buckets in the hash.
956
957           NOTE: "hv_fill" must be explicitly called as "Perl_hv_fill" with an
958           "aTHX_" parameter.
959
960            STRLEN  Perl_hv_fill(pTHX_ HV * const hv)
961
962       "hv_placeholders_get"
963           Implements "HvPLACEHOLDERS_get", which you should use instead.
964
965           NOTE: "hv_placeholders_get" must be explicitly called as
966           "Perl_hv_placeholders_get" with an "aTHX_" parameter.
967
968            I32  Perl_hv_placeholders_get(pTHX_ const HV *hv)
969
970       "hv_placeholders_set"
971           Implements "HvPLACEHOLDERS_set", which you should use instead.
972
973           NOTE: "hv_placeholders_set" must be explicitly called as
974           "Perl_hv_placeholders_set" with an "aTHX_" parameter.
975
976            void  Perl_hv_placeholders_set(pTHX_ HV *hv, I32 ph)
977
978       "hv_riter_p"
979           Implements "HvRITER" which you should use instead.
980
981           NOTE: "hv_riter_p" must be explicitly called as "Perl_hv_riter_p"
982           with an "aTHX_" parameter.
983
984            I32 *  Perl_hv_riter_p(pTHX_ HV *hv)
985
986       "hv_riter_set"
987           Implements "HvRITER_set" which you should use instead.
988
989           NOTE: "hv_riter_set" must be explicitly called as
990           "Perl_hv_riter_set" with an "aTHX_" parameter.
991
992            void  Perl_hv_riter_set(pTHX_ HV *hv, I32 riter)
993
994       "refcounted_he_chain_2hv"
995           Generates and returns a "HV *" representing the content of a
996           "refcounted_he" chain.  "flags" is currently unused and must be
997           zero.
998
999            HV *  refcounted_he_chain_2hv(const struct refcounted_he *c,
1000                                          U32 flags)
1001
1002       "refcounted_he_fetch_pv"
1003           Like "refcounted_he_fetch_pvn", but takes a nul-terminated string
1004           instead of a string/length pair.
1005
1006            SV *  refcounted_he_fetch_pv(const struct refcounted_he *chain,
1007                                         const char *key, U32 hash, U32 flags)
1008
1009       "refcounted_he_fetch_pvn"
1010           Search along a "refcounted_he" chain for an entry with the key
1011           specified by "keypv" and "keylen".  If "flags" has the
1012           "REFCOUNTED_HE_KEY_UTF8" bit set, the key octets are interpreted as
1013           UTF-8, otherwise they are interpreted as Latin-1.  "hash" is a
1014           precomputed hash of the key string, or zero if it has not been
1015           precomputed.  Returns a mortal scalar representing the value
1016           associated with the key, or &PL_sv_placeholder if there is no value
1017           associated with the key.
1018
1019            SV *  refcounted_he_fetch_pvn(const struct refcounted_he *chain,
1020                                          const char *keypv, STRLEN keylen,
1021                                          U32 hash, U32 flags)
1022
1023       "refcounted_he_fetch_pvs"
1024           Like "refcounted_he_fetch_pvn", but takes a literal string instead
1025           of a string/length pair, and no precomputed hash.
1026
1027            SV *  refcounted_he_fetch_pvs(const struct refcounted_he *chain,
1028                                          "key", U32 flags)
1029
1030       "refcounted_he_fetch_sv"
1031           Like "refcounted_he_fetch_pvn", but takes a Perl scalar instead of
1032           a string/length pair.
1033
1034            SV *  refcounted_he_fetch_sv(const struct refcounted_he *chain,
1035                                         SV *key, U32 hash, U32 flags)
1036
1037       "refcounted_he_free"
1038           Decrements the reference count of a "refcounted_he" by one.  If the
1039           reference count reaches zero the structure's memory is freed, which
1040           (recursively) causes a reduction of its parent "refcounted_he"'s
1041           reference count.  It is safe to pass a null pointer to this
1042           function: no action occurs in this case.
1043
1044            void  refcounted_he_free(struct refcounted_he *he)
1045
1046       "refcounted_he_inc"
1047           Increment the reference count of a "refcounted_he".  The pointer to
1048           the "refcounted_he" is also returned.  It is safe to pass a null
1049           pointer to this function: no action occurs and a null pointer is
1050           returned.
1051
1052            struct refcounted_he *  refcounted_he_inc(
1053                                                     struct refcounted_he *he)
1054
1055       "refcounted_he_new_pv"
1056           Like "refcounted_he_new_pvn", but takes a nul-terminated string
1057           instead of a string/length pair.
1058
1059            struct refcounted_he *  refcounted_he_new_pv(
1060                                                 struct refcounted_he *parent,
1061                                                 const char *key, U32 hash,
1062                                                 SV *value, U32 flags)
1063
1064       "refcounted_he_new_pvn"
1065           Creates a new "refcounted_he".  This consists of a single key/value
1066           pair and a reference to an existing "refcounted_he" chain (which
1067           may be empty), and thus forms a longer chain.  When using the
1068           longer chain, the new key/value pair takes precedence over any
1069           entry for the same key further along the chain.
1070
1071           The new key is specified by "keypv" and "keylen".  If "flags" has
1072           the "REFCOUNTED_HE_KEY_UTF8" bit set, the key octets are
1073           interpreted as UTF-8, otherwise they are interpreted as Latin-1.
1074           "hash" is a precomputed hash of the key string, or zero if it has
1075           not been precomputed.
1076
1077           "value" is the scalar value to store for this key.  "value" is
1078           copied by this function, which thus does not take ownership of any
1079           reference to it, and later changes to the scalar will not be
1080           reflected in the value visible in the "refcounted_he".  Complex
1081           types of scalar will not be stored with referential integrity, but
1082           will be coerced to strings.  "value" may be either null or
1083           &PL_sv_placeholder to indicate that no value is to be associated
1084           with the key; this, as with any non-null value, takes precedence
1085           over the existence of a value for the key further along the chain.
1086
1087           "parent" points to the rest of the "refcounted_he" chain to be
1088           attached to the new "refcounted_he".  This function takes ownership
1089           of one reference to "parent", and returns one reference to the new
1090           "refcounted_he".
1091
1092            struct refcounted_he *  refcounted_he_new_pvn(
1093                                                 struct refcounted_he *parent,
1094                                                 const char *keypv,
1095                                                 STRLEN keylen, U32 hash,
1096                                                 SV *value, U32 flags)
1097
1098       "refcounted_he_new_pvs"
1099           Like "refcounted_he_new_pvn", but takes a literal string instead of
1100           a string/length pair, and no precomputed hash.
1101
1102            struct refcounted_he *  refcounted_he_new_pvs(
1103                                                 struct refcounted_he *parent,
1104                                                 "key", SV *value, U32 flags)
1105
1106       "refcounted_he_new_sv"
1107           Like "refcounted_he_new_pvn", but takes a Perl scalar instead of a
1108           string/length pair.
1109
1110            struct refcounted_he *  refcounted_he_new_sv(
1111                                                 struct refcounted_he *parent,
1112                                                 SV *key, U32 hash, SV *value,
1113                                                 U32 flags)
1114
1115       "unsharepvn"
1116           If no one has access to shared string "str" with length "len", free
1117           it.
1118
1119           "len" and "hash" must both be valid for "str".
1120
1121            void  unsharepvn(const char *sv, I32 len, U32 hash)
1122

Input/Output

1124       "dirp_dup"
1125           Duplicate a directory handle, returning a pointer to the cloned
1126           object.
1127
1128            DIR *  dirp_dup(DIR * const dp, CLONE_PARAMS * const param)
1129
1130       "fp_dup"
1131           Duplicate a file handle, returning a pointer to the cloned object.
1132
1133            PerlIO *  fp_dup(PerlIO * const fp, const char type,
1134                             CLONE_PARAMS * const param)
1135
1136       "my_fflush_all"
1137           Implements "PERL_FLUSHALL_FOR_CHILD" on some platforms.
1138
1139            I32  my_fflush_all()
1140
1141       "my_mkostemp"
1142           The C library mkostemp(3) if available, or a Perl implementation of
1143           it.
1144
1145           NOTE: "my_mkostemp" must be explicitly called as "Perl_my_mkostemp"
1146           .
1147
1148            int  Perl_my_mkostemp(char *templte, int flags)
1149
1150       "my_mkstemp"
1151           The C library mkstemp(3) if available, or a Perl implementation of
1152           it.
1153
1154           NOTE: "my_mkstemp" must be explicitly called as "Perl_my_mkstemp" .
1155
1156            int  Perl_my_mkstemp(char *templte)
1157
1158       "PL_last_in_gv"
1159           The GV which was last used for a filehandle input operation.
1160           ("<FH>")
1161
1162           On threaded perls, each thread has an independent copy of this
1163           variable; each initialized at creation time with the current value
1164           of the creating thread's copy.
1165
1166            GV*  PL_last_in_gv
1167
1168       "PL_ofsgv"
1169           The glob containing the output field separator - "*," in Perl
1170           space.
1171
1172           On threaded perls, each thread has an independent copy of this
1173           variable; each initialized at creation time with the current value
1174           of the creating thread's copy.
1175
1176            GV*  PL_ofsgv
1177
1178       "PL_rs"
1179           The input record separator - $/ in Perl space.
1180
1181           On threaded perls, each thread has an independent copy of this
1182           variable; each initialized at creation time with the current value
1183           of the creating thread's copy.
1184
1185            SV*  PL_rs
1186
1187       "start_glob"
1188           NOTE: "start_glob" is experimental and may change or be removed
1189           without notice.
1190
1191           Function called by "do_readline" to spawn a glob (or do the glob
1192           inside perl on VMS).  This code used to be inline, but now perl
1193           uses "File::Glob" this glob starter is only used by miniperl during
1194           the build process, or when PERL_EXTERNAL_GLOB is defined.  Moving
1195           it away shrinks pp_hot.c; shrinking pp_hot.c helps speed perl up.
1196
1197           NOTE: "start_glob" must be explicitly called as "Perl_start_glob"
1198           with an "aTHX_" parameter.
1199
1200            PerlIO *  Perl_start_glob(pTHX_ SV *tmpglob, IO *io)
1201

Integer

1203       There are currently no internal API items in Integer
1204

I/O Formats

1206       There are currently no internal API items in I/O Formats
1207

Lexer interface

1209       "resume_compcv_and_save"
1210           Resumes a buffer previously suspended by the "suspend_compcv"
1211           function, in a way that will be re-suspended at the end of the
1212           scope so it can be used again later.  This should be used within an
1213           "ENTER"/"LEAVE" scoped pair.
1214
1215            void  resume_compcv_and_save(struct suspended_compcv *buffer)
1216
1217       "resume_compcv_final"
1218           Resumes the parser state previously saved using the
1219           "suspend_compcv" function for a final time before being compiled
1220           into a full CV.  This should be used within an "ENTER"/"LEAVE"
1221           scoped pair.
1222
1223            void  resume_compcv_final(struct suspended_compcv *buffer)
1224
1225       "validate_proto"
1226           NOTE: "validate_proto" is experimental and may change or be removed
1227           without notice.
1228
1229           This function performs syntax checking on a prototype, "proto".  If
1230           "warn" is true, any illegal characters or mismatched brackets will
1231           trigger illegalproto warnings, declaring that they were detected in
1232           the prototype for "name".
1233
1234           The return value is "true" if this is a valid prototype, and
1235           "false" if it is not, regardless of whether "warn" was "true" or
1236           "false".
1237
1238           Note that "NULL" is a valid "proto" and will always return "true".
1239
1240            bool  validate_proto(SV *name, SV *proto, bool warn,
1241                                 bool curstash)
1242

Locales

1244       There are currently no internal API items in Locales
1245

Magic

1247       "magic_clearhint"
1248           Triggered by a delete from "%^H", records the key to
1249           "PL_compiling.cop_hints_hash".
1250
1251            int  magic_clearhint(SV *sv, MAGIC *mg)
1252
1253       "magic_clearhints"
1254           Triggered by clearing "%^H", resets "PL_compiling.cop_hints_hash".
1255
1256            int  magic_clearhints(SV *sv, MAGIC *mg)
1257
1258       "magic_methcall"
1259           Invoke a magic method (like FETCH).
1260
1261           "sv" and "mg" are the tied thingy and the tie magic.
1262
1263           "meth" is the name of the method to call.
1264
1265           "argc" is the number of args (in addition to $self) to pass to the
1266           method.
1267
1268           The "flags" can be:
1269
1270               G_DISCARD     invoke method with G_DISCARD flag and don't
1271                             return a value
1272               G_UNDEF_FILL  fill the stack with argc pointers to
1273                             PL_sv_undef
1274
1275           The arguments themselves are any values following the "flags"
1276           argument.
1277
1278           Returns the SV (if any) returned by the method, or "NULL" on
1279           failure.
1280
1281           NOTE: "magic_methcall" must be explicitly called as
1282           "Perl_magic_methcall" with an "aTHX_" parameter.
1283
1284            SV *  Perl_magic_methcall(pTHX_ SV *sv, const MAGIC *mg,
1285                                      SV *meth, U32 flags, U32 argc, ...)
1286
1287       "magic_sethint"
1288           Triggered by a store to "%^H", records the key/value pair to
1289           "PL_compiling.cop_hints_hash".  It is assumed that hints aren't
1290           storing anything that would need a deep copy.  Maybe we should warn
1291           if we find a reference.
1292
1293            int  magic_sethint(SV *sv, MAGIC *mg)
1294
1295       "mg_dup"
1296           Duplicate a chain of magic, returning a pointer to the cloned
1297           object.
1298
1299            MAGIC *  mg_dup(MAGIC *mg, CLONE_PARAMS * const param)
1300
1301       "mg_localize"
1302           Copy some of the magic from an existing SV to new localized version
1303           of that SV.  Container magic (e.g., %ENV, $1, "tie") gets copied,
1304           value magic doesn't (e.g., "taint", "pos").
1305
1306           If "setmagic" is false then no set magic will be called on the new
1307           (empty) SV.  This typically means that assignment will soon follow
1308           (e.g. 'local $x = $y'), and that will handle the magic.
1309
1310            void  mg_localize(SV *sv, SV *nsv, bool setmagic)
1311

Memory Management

1313       "calloc"
1314           Implements ""Newxz"" in perlapi which you should use instead.
1315
1316           NOTE: "calloc" must be explicitly called as "Perl_calloc" .
1317
1318            Malloc_t  Perl_calloc(MEM_SIZE elements, MEM_SIZE size)
1319
1320       "malloc"
1321           Implements ""Newx"" in perlapi which you should use instead.
1322
1323           NOTE: "malloc" must be explicitly called as "Perl_malloc" .
1324
1325            Malloc_t  Perl_malloc(MEM_SIZE nbytes)
1326
1327       "mfree"
1328           Implements ""Safefree"" in perlapi which you should use instead.
1329
1330           NOTE: "mfree" must be explicitly called as "Perl_mfree" .
1331
1332            Free_t  Perl_mfree(Malloc_t where)
1333
1334       "realloc"
1335           Implements ""Renew"" in perlapi which you should use instead.
1336
1337           NOTE: "realloc" must be explicitly called as "Perl_realloc" .
1338
1339            Malloc_t  Perl_realloc(Malloc_t where, MEM_SIZE nbytes)
1340

MRO

1342       "mro_get_linear_isa_dfs"
1343           Returns the Depth-First Search linearization of @ISA the given
1344           stash.  The return value is a read-only AV* whose elements are
1345           string SVs giving class names.  "level" should be 0 (it is used
1346           internally in this function's recursion).
1347
1348           You are responsible for SvREFCNT_inc() on the return value if you
1349           plan to store it anywhere semi-permanently (otherwise it might be
1350           deleted out from under you the next time the cache is invalidated).
1351
1352            AV *  mro_get_linear_isa_dfs(HV *stash, U32 level)
1353
1354       "mro_isa_changed_in"
1355           Takes the necessary steps (cache invalidations, mostly) when the
1356           @ISA of the given package has changed.  Invoked by the "setisa"
1357           magic, should not need to invoke directly.
1358
1359            void  mro_isa_changed_in(HV *stash)
1360
1361       "mro_package_moved"
1362           Call this function to signal to a stash that it has been assigned
1363           to another spot in the stash hierarchy.  "stash" is the stash that
1364           has been assigned.  "oldstash" is the stash it replaces, if any.
1365           "gv" is the glob that is actually being assigned to.
1366
1367           This can also be called with a null first argument to indicate that
1368           "oldstash" has been deleted.
1369
1370           This function invalidates isa caches on the old stash, on all
1371           subpackages nested inside it, and on the subclasses of all those,
1372           including non-existent packages that have corresponding entries in
1373           "stash".
1374
1375           It also sets the effective names ("HvENAME") on all the stashes as
1376           appropriate.
1377
1378           If the "gv" is present and is not in the symbol table, then this
1379           function simply returns.  This checked will be skipped if "flags &
1380           1".
1381
1382            void  mro_package_moved(HV * const stash, HV * const oldstash,
1383                                    const GV * const gv, U32 flags)
1384

Multicall Functions

1386       There are currently no internal API items in Multicall Functions
1387

Numeric Functions

1389       "isinfnansv"
1390           Checks whether the argument would be either an infinity or "NaN"
1391           when used as a number, but is careful not to trigger non-numeric or
1392           uninitialized warnings.  it assumes the caller has done
1393           SvGETMAGIC(sv) already.
1394
1395           Note that this always accepts trailing garbage (similar to
1396           "grok_number_flags" with "PERL_SCAN_TRAILING"), so "inferior" and
1397           "NAND gates" will return true.
1398
1399            bool  isinfnansv(SV *sv)
1400

Optrees

1402       "newATTRSUB_x"
1403           Construct a Perl subroutine, also performing some surrounding jobs.
1404
1405           This function is expected to be called in a Perl compilation
1406           context, and some aspects of the subroutine are taken from global
1407           variables associated with compilation.  In particular, "PL_compcv"
1408           represents the subroutine that is currently being compiled.  It
1409           must be non-null when this function is called, and some aspects of
1410           the subroutine being constructed are taken from it.  The
1411           constructed subroutine may actually be a reuse of the "PL_compcv"
1412           object, but will not necessarily be so.
1413
1414           If "block" is null then the subroutine will have no body, and for
1415           the time being it will be an error to call it.  This represents a
1416           forward subroutine declaration such as "sub foo ($$);".  If "block"
1417           is non-null then it provides the Perl code of the subroutine body,
1418           which will be executed when the subroutine is called.  This body
1419           includes any argument unwrapping code resulting from a subroutine
1420           signature or similar.  The pad use of the code must correspond to
1421           the pad attached to "PL_compcv".  The code is not expected to
1422           include a "leavesub" or "leavesublv" op; this function will add
1423           such an op.  "block" is consumed by this function and will become
1424           part of the constructed subroutine.
1425
1426           "proto" specifies the subroutine's prototype, unless one is
1427           supplied as an attribute (see below).  If "proto" is null, then the
1428           subroutine will not have a prototype.  If "proto" is non-null, it
1429           must point to a "const" op whose value is a string, and the
1430           subroutine will have that string as its prototype.  If a prototype
1431           is supplied as an attribute, the attribute takes precedence over
1432           "proto", but in that case "proto" should preferably be null.  In
1433           any case, "proto" is consumed by this function.
1434
1435           "attrs" supplies attributes to be applied the subroutine.  A
1436           handful of attributes take effect by built-in means, being applied
1437           to "PL_compcv" immediately when seen.  Other attributes are
1438           collected up and attached to the subroutine by this route.  "attrs"
1439           may be null to supply no attributes, or point to a "const" op for a
1440           single attribute, or point to a "list" op whose children apart from
1441           the "pushmark" are "const" ops for one or more attributes.  Each
1442           "const" op must be a string, giving the attribute name optionally
1443           followed by parenthesised arguments, in the manner in which
1444           attributes appear in Perl source.  The attributes will be applied
1445           to the sub by this function.  "attrs" is consumed by this function.
1446
1447           If "o_is_gv" is false and "o" is null, then the subroutine will be
1448           anonymous.  If "o_is_gv" is false and "o" is non-null, then "o"
1449           must point to a "const" OP, which will be consumed by this
1450           function, and its string value supplies a name for the subroutine.
1451           The name may be qualified or unqualified, and if it is unqualified
1452           then a default stash will be selected in some manner.  If "o_is_gv"
1453           is true, then "o" doesn't point to an "OP" at all, but is instead a
1454           cast pointer to a "GV" by which the subroutine will be named.
1455
1456           If there is already a subroutine of the specified name, then the
1457           new sub will either replace the existing one in the glob or be
1458           merged with the existing one.  A warning may be generated about
1459           redefinition.
1460
1461           If the subroutine has one of a few special names, such as "BEGIN"
1462           or "END", then it will be claimed by the appropriate queue for
1463           automatic running of phase-related subroutines.  In this case the
1464           relevant glob will be left not containing any subroutine, even if
1465           it did contain one before.  In the case of "BEGIN", the subroutine
1466           will be executed and the reference to it disposed of before this
1467           function returns.
1468
1469           The function returns a pointer to the constructed subroutine.  If
1470           the sub is anonymous then ownership of one counted reference to the
1471           subroutine is transferred to the caller.  If the sub is named then
1472           the caller does not get ownership of a reference.  In most such
1473           cases, where the sub has a non-phase name, the sub will be alive at
1474           the point it is returned by virtue of being contained in the glob
1475           that names it.  A phase-named subroutine will usually be alive by
1476           virtue of the reference owned by the phase's automatic run queue.
1477           But a "BEGIN" subroutine, having already been executed, will quite
1478           likely have been destroyed already by the time this function
1479           returns, making it erroneous for the caller to make any use of the
1480           returned pointer.  It is the caller's responsibility to ensure that
1481           it knows which of these situations applies.
1482
1483            CV *  newATTRSUB_x(I32 floor, OP *o, OP *proto, OP *attrs,
1484                               OP *block, bool o_is_gv)
1485
1486       "newXS_len_flags"
1487           Construct an XS subroutine, also performing some surrounding jobs.
1488
1489           The subroutine will have the entry point "subaddr".  It will have
1490           the prototype specified by the nul-terminated string "proto", or no
1491           prototype if "proto" is null.  The prototype string is copied; the
1492           caller can mutate the supplied string afterwards.  If "filename" is
1493           non-null, it must be a nul-terminated filename, and the subroutine
1494           will have its "CvFILE" set accordingly.  By default "CvFILE" is set
1495           to point directly to the supplied string, which must be static.  If
1496           "flags" has the "XS_DYNAMIC_FILENAME" bit set, then a copy of the
1497           string will be taken instead.
1498
1499           Other aspects of the subroutine will be left in their default
1500           state.  If anything else needs to be done to the subroutine for it
1501           to function correctly, it is the caller's responsibility to do that
1502           after this function has constructed it.  However, beware of the
1503           subroutine potentially being destroyed before this function
1504           returns, as described below.
1505
1506           If "name" is null then the subroutine will be anonymous, with its
1507           "CvGV" referring to an "__ANON__" glob.  If "name" is non-null then
1508           the subroutine will be named accordingly, referenced by the
1509           appropriate glob.  "name" is a string of length "len" bytes giving
1510           a sigilless symbol name, in UTF-8 if "flags" has the "SVf_UTF8" bit
1511           set and in Latin-1 otherwise.  The name may be either qualified or
1512           unqualified, with the stash defaulting in the same manner as for
1513           "gv_fetchpvn_flags".  "flags" may contain flag bits understood by
1514           "gv_fetchpvn_flags" with the same meaning as they have there, such
1515           as "GV_ADDWARN".  The symbol is always added to the stash if
1516           necessary, with "GV_ADDMULTI" semantics.
1517
1518           If there is already a subroutine of the specified name, then the
1519           new sub will replace the existing one in the glob.  A warning may
1520           be generated about the redefinition.  If the old subroutine was
1521           "CvCONST" then the decision about whether to warn is influenced by
1522           an expectation about whether the new subroutine will become a
1523           constant of similar value.  That expectation is determined by
1524           "const_svp".  (Note that the call to this function doesn't make the
1525           new subroutine "CvCONST" in any case; that is left to the caller.)
1526           If "const_svp" is null then it indicates that the new subroutine
1527           will not become a constant.  If "const_svp" is non-null then it
1528           indicates that the new subroutine will become a constant, and it
1529           points to an "SV*" that provides the constant value that the
1530           subroutine will have.
1531
1532           If the subroutine has one of a few special names, such as "BEGIN"
1533           or "END", then it will be claimed by the appropriate queue for
1534           automatic running of phase-related subroutines.  In this case the
1535           relevant glob will be left not containing any subroutine, even if
1536           it did contain one before.  In the case of "BEGIN", the subroutine
1537           will be executed and the reference to it disposed of before this
1538           function returns, and also before its prototype is set.  If a
1539           "BEGIN" subroutine would not be sufficiently constructed by this
1540           function to be ready for execution then the caller must prevent
1541           this happening by giving the subroutine a different name.
1542
1543           The function returns a pointer to the constructed subroutine.  If
1544           the sub is anonymous then ownership of one counted reference to the
1545           subroutine is transferred to the caller.  If the sub is named then
1546           the caller does not get ownership of a reference.  In most such
1547           cases, where the sub has a non-phase name, the sub will be alive at
1548           the point it is returned by virtue of being contained in the glob
1549           that names it.  A phase-named subroutine will usually be alive by
1550           virtue of the reference owned by the phase's automatic run queue.
1551           But a "BEGIN" subroutine, having already been executed, will quite
1552           likely have been destroyed already by the time this function
1553           returns, making it erroneous for the caller to make any use of the
1554           returned pointer.  It is the caller's responsibility to ensure that
1555           it knows which of these situations applies.
1556
1557            CV *  newXS_len_flags(const char *name, STRLEN len,
1558                                  XSUBADDR_t subaddr,
1559                                  const char * const filename,
1560                                  const char * const proto, SV ** const_svp,
1561                                  U32 flags)
1562
1563       "op_refcnt_lock"
1564           Implements the "OP_REFCNT_LOCK" macro which you should use instead.
1565
1566            void  op_refcnt_lock()
1567
1568       "op_refcnt_unlock"
1569           Implements the "OP_REFCNT_UNLOCK" macro which you should use
1570           instead.
1571
1572            void  op_refcnt_unlock()
1573
1574       "traverse_op_tree"
1575           Return the next op in a depth-first traversal of the op tree,
1576           returning NULL when the traversal is complete.
1577
1578           The initial call must supply the root of the tree as both top and
1579           o.
1580
1581           For now it's static, but it may be exposed to the API in the
1582           future.
1583
1584            OP *  traverse_op_tree(OP *top, OP *o)
1585

Pack and Unpack

1587       There are currently no internal API items in Pack and Unpack
1588

Pad Data Structures

1590       "CX_CURPAD_SAVE"
1591           Save the current pad in the given context block structure.
1592
1593            void  CX_CURPAD_SAVE(struct context)
1594
1595       "CX_CURPAD_SV"
1596           Access the SV at offset "po" in the saved current pad in the given
1597           context block structure (can be used as an lvalue).
1598
1599            SV *  CX_CURPAD_SV(struct context, PADOFFSET po)
1600
1601       "PAD_BASE_SV"
1602           Get the value from slot "po" in the base (DEPTH=1) pad of a padlist
1603
1604            SV *  PAD_BASE_SV(PADLIST padlist, PADOFFSET po)
1605
1606       "PAD_CLONE_VARS"
1607           Clone the state variables associated with running and compiling
1608           pads.
1609
1610            void  PAD_CLONE_VARS(PerlInterpreter *proto_perl,
1611                                 CLONE_PARAMS* param)
1612
1613       "PAD_COMPNAME_FLAGS"
1614           Return the flags for the current compiling pad name at offset "po".
1615           Assumes a valid slot entry.
1616
1617            U32  PAD_COMPNAME_FLAGS(PADOFFSET po)
1618
1619       "PAD_COMPNAME_GEN"
1620           The generation number of the name at offset "po" in the current
1621           compiling pad (lvalue).
1622
1623            STRLEN  PAD_COMPNAME_GEN(PADOFFSET po)
1624
1625       "PAD_COMPNAME_GEN_set"
1626           Sets the generation number of the name at offset "po" in the
1627           current ling pad (lvalue) to "gen".
1628
1629            STRLEN  PAD_COMPNAME_GEN_set(PADOFFSET po, int gen)
1630
1631       "PAD_COMPNAME_OURSTASH"
1632           Return the stash associated with an "our" variable.  Assumes the
1633           slot entry is a valid "our" lexical.
1634
1635            HV *  PAD_COMPNAME_OURSTASH(PADOFFSET po)
1636
1637       "PAD_COMPNAME_PV"
1638           Return the name of the current compiling pad name at offset "po".
1639           Assumes a valid slot entry.
1640
1641            char *  PAD_COMPNAME_PV(PADOFFSET po)
1642
1643       "PAD_COMPNAME_TYPE"
1644           Return the type (stash) of the current compiling pad name at offset
1645           "po".  Must be a valid name.  Returns null if not typed.
1646
1647            HV *  PAD_COMPNAME_TYPE(PADOFFSET po)
1648
1649       "PadnameIsFIELD"
1650           Whether this is a "field" variable.  PADNAMEs where this is true
1651           will have additional information available via "PadnameFIELDINFO".
1652
1653            bool  PadnameIsFIELD(PADNAME * pn)
1654
1655       "PadnameIsOUR"
1656           Whether this is an "our" variable.
1657
1658            bool  PadnameIsOUR(PADNAME * pn)
1659
1660       "PadnameIsSTATE"
1661           Whether this is a "state" variable.
1662
1663            bool  PadnameIsSTATE(PADNAME * pn)
1664
1665       "PadnameOURSTASH"
1666           The stash in which this "our" variable was declared.
1667
1668            HV *  PadnameOURSTASH(PADNAME * pn)
1669
1670       "PadnameOUTER"
1671           Whether this entry belongs to an outer pad.  Entries for which this
1672           is true are often referred to as 'fake'.
1673
1674            bool  PadnameOUTER(PADNAME * pn)
1675
1676       "PadnameTYPE"
1677           The stash associated with a typed lexical.  This returns the %Foo::
1678           hash for "my Foo $bar".
1679
1680            HV *  PadnameTYPE(PADNAME * pn)
1681
1682       "PAD_RESTORE_LOCAL"
1683           Restore the old pad saved into the local variable "opad" by
1684           PAD_SAVE_LOCAL()
1685
1686            void  PAD_RESTORE_LOCAL(PAD *opad)
1687
1688       "PAD_SAVE_LOCAL"
1689           Save the current pad to the local variable "opad", then make the
1690           current pad equal to "npad"
1691
1692            void  PAD_SAVE_LOCAL(PAD *opad, PAD *npad)
1693
1694       "PAD_SAVE_SETNULLPAD"
1695           Save the current pad then set it to null.
1696
1697            void  PAD_SAVE_SETNULLPAD()
1698
1699       "PAD_SET_CUR"
1700           Set the current pad to be pad "n" in the padlist, saving the
1701           previous current pad.  NB currently this macro expands to a string
1702           too long for some compilers, so it's best to replace it with
1703
1704               SAVECOMPPAD();
1705               PAD_SET_CUR_NOSAVE(padlist,n);
1706
1707            void  PAD_SET_CUR(PADLIST padlist, I32 n)
1708
1709       "PAD_SET_CUR_NOSAVE"
1710           like PAD_SET_CUR, but without the save
1711
1712            void  PAD_SET_CUR_NOSAVE(PADLIST padlist, I32 n)
1713
1714       "PAD_SETSV"
1715           Set the slot at offset "po" in the current pad to "sv"
1716
1717            SV *  PAD_SETSV(PADOFFSET po, SV* sv)
1718
1719       "PAD_SV"
1720           Get the value at offset "po" in the current pad
1721
1722            SV *  PAD_SV(PADOFFSET po)
1723
1724       "PAD_SVl"
1725           Lightweight and lvalue version of "PAD_SV".  Get or set the value
1726           at offset "po" in the current pad.  Unlike "PAD_SV", does not print
1727           diagnostics with -DX.  For internal use only.
1728
1729            SV *  PAD_SVl(PADOFFSET po)
1730
1731       "SAVECLEARSV"
1732           Clear the pointed to pad value on scope exit.  (i.e. the runtime
1733           action of "my")
1734
1735            void  SAVECLEARSV(SV **svp)
1736
1737       "SAVECOMPPAD"
1738           save "PL_comppad" and "PL_curpad"
1739
1740            void  SAVECOMPPAD()
1741
1742       "SAVEPADSV"
1743           Save a pad slot (used to restore after an iteration)
1744
1745            void  SAVEPADSV(PADOFFSET po)
1746

Password and Group access

1748       There are currently no internal API items in Password and Group access
1749

Paths to system commands

1751       There are currently no internal API items in Paths to system commands
1752

Prototype information

1754       There are currently no internal API items in Prototype information
1755

REGEXP Functions

1757       "regnode"
1758           Described in perlreguts.
1759

Reports and Formats

1761       There are currently no internal API items in Reports and Formats
1762

Signals

1764       There are currently no internal API items in Signals
1765

Site configuration

1767       There are currently no internal API items in Site configuration
1768

Sockets configuration values

1770       There are currently no internal API items in Sockets configuration
1771       values
1772

Source Filters

1774       There are currently no internal API items in Source Filters
1775

Stack Manipulation Macros

1777       "djSP"
1778           Declare Just "SP".  This is actually identical to "dSP", and
1779           declares a local copy of perl's stack pointer, available via the
1780           "SP" macro.  See ""SP" in perlapi".  (Available for backward source
1781           code compatibility with the old (Perl 5.005) thread model.)
1782
1783              djSP();
1784
1785       "LVRET"
1786           True if this op will be the return value of an lvalue subroutine
1787
1788       "save_alloc"
1789           Implements ""SSNEW"" in perlapi and kin, which should be used
1790           instead of this function.
1791
1792            SSize_t  save_alloc(SSize_t size, I32 pad)
1793

String Handling

1795       "delimcpy_no_escape"
1796           Copy a source buffer to a destination buffer, stopping at (but not
1797           including) the first occurrence in the source of the delimiter
1798           byte, "delim".  The source is the bytes between
1799           "from" and "from_end" - 1.  Similarly, the dest is "to" up to
1800           "to_end".
1801
1802           The number of bytes copied is written to *retlen.
1803
1804           Returns the position of "delim" in the "from" buffer, but if there
1805           is no such occurrence before "from_end", then "from_end" is
1806           returned, and the entire buffer "from" .. "from_end" - 1 is copied.
1807
1808           If there is room in the destination available after the copy, an
1809           extra terminating safety "NUL" byte is appended (not included in
1810           the returned length).
1811
1812           The error case is if the destination buffer is not large enough to
1813           accommodate everything that should be copied.  In this situation, a
1814           value larger than "to_end" - "to" is written to *retlen, and as
1815           much of the source as fits will be written to the destination.  Not
1816           having room for the safety "NUL" is not considered an error.
1817
1818            char *  delimcpy_no_escape(char *to, const char *to_end,
1819                                       const char *from, const char *from_end,
1820                                       const int delim, I32 *retlen)
1821
1822       "my_cxt_init"
1823           Implements the ""MY_CXT_INIT"" in perlxs macro, which you should
1824           use instead.
1825
1826           The first time a module is loaded, the global "PL_my_cxt_index" is
1827           incremented, and that value is assigned to that module's static
1828           "my_cxt_index" (whose address is passed as an arg).  Then, for each
1829           interpreter this function is called for, it makes sure a "void*"
1830           slot is available to hang the static data off, by allocating or
1831           extending the interpreter's "PL_my_cxt_list" array
1832
1833           NOTE: "my_cxt_init" must be explicitly called as "Perl_my_cxt_init"
1834           with an "aTHX_" parameter.
1835
1836            void *  Perl_my_cxt_init(pTHX_ int *indexp, size_t size)
1837
1838       "quadmath_format_needed"
1839           quadmath_format_needed() returns true if the "format" string seems
1840           to contain at least one non-Q-prefixed "%[efgaEFGA]" format
1841           specifier, or returns false otherwise.
1842
1843           The format specifier detection is not complete printf-syntax
1844           detection, but it should catch most common cases.
1845
1846           If true is returned, those arguments should in theory be processed
1847           with quadmath_snprintf(), but in case there is more than one such
1848           format specifier (see "quadmath_format_valid"), and if there is
1849           anything else beyond that one (even just a single byte), they
1850           cannot be processed because quadmath_snprintf() is very strict,
1851           accepting only one format spec, and nothing else.  In this case,
1852           the code should probably fail.
1853
1854            bool  quadmath_format_needed(const char *format)
1855
1856       "quadmath_format_valid"
1857           quadmath_snprintf() is very strict about its "format" string and
1858           will fail, returning -1, if the format is invalid.  It accepts
1859           exactly one format spec.
1860
1861           quadmath_format_valid() checks that the intended single spec looks
1862           sane: begins with "%", has only one "%", ends with "[efgaEFGA]",
1863           and has "Q" before it.  This is not a full "printf syntax check",
1864           just the basics.
1865
1866           Returns true if it is valid, false if not.
1867
1868           See also "quadmath_format_needed".
1869
1870            bool  quadmath_format_valid(const char *format)
1871

SV Flags

1873       "SVt_INVLIST"
1874           Type flag for scalars.  See "svtype" in perlapi.
1875

SV Handling

1877       "PL_Sv"
1878           A scratch pad SV for whatever temporary use you need.  Chiefly used
1879           as a fallback by macros on platforms where
1880           "PERL_USE_GCC_BRACE_GROUPS" in perlapi> is unavailable, and which
1881           would otherwise evaluate their SV parameter more than once.
1882
1883           BUT BEWARE, if this is used in a situation where something that is
1884           using it is in a call stack with something else that is using it,
1885           this variable would get zapped, leading to hard-to-diagnose errors.
1886
1887              PL_Sv
1888
1889       "sv_add_arena"
1890           Given a chunk of memory, link it to the head of the list of arenas,
1891           and split it into a list of free SVs.
1892
1893            void  sv_add_arena(char * const ptr, const U32 size,
1894                               const U32 flags)
1895
1896       "sv_2bool"
1897           This macro is only used by sv_true() or its macro equivalent, and
1898           only if the latter's argument is neither "SvPOK", "SvIOK" nor
1899           "SvNOK".  It calls "sv_2bool_flags" with the "SV_GMAGIC" flag.
1900
1901            bool  sv_2bool(SV * const sv)
1902
1903       "sv_2bool_flags"
1904           This function is only used by sv_true() and friends,  and only if
1905           the latter's argument is neither "SvPOK", "SvIOK" nor "SvNOK".  If
1906           the flags contain "SV_GMAGIC", then it does an mg_get() first.
1907
1908            bool  sv_2bool_flags(SV *sv, I32 flags)
1909
1910       "sv_clean_all"
1911           Decrement the refcnt of each remaining SV, possibly triggering a
1912           cleanup.  This function may have to be called multiple times to
1913           free SVs which are in complex self-referential hierarchies.
1914
1915            I32  sv_clean_all()
1916
1917       "sv_clean_objs"
1918           Attempt to destroy all objects not yet freed.
1919
1920            void  sv_clean_objs()
1921
1922       "sv_free_arenas"
1923           Deallocate the memory used by all arenas.  Note that all the
1924           individual SV heads and bodies within the arenas must already have
1925           been freed.
1926
1927            void  sv_free_arenas()
1928
1929       "sv_grow"
1930           Expands the character buffer in the SV.  If necessary, uses
1931           "sv_unref" and upgrades the SV to "SVt_PV".  Returns a pointer to
1932           the character buffer.  Use the "SvGROW" wrapper instead.
1933
1934            char *  sv_grow(SV * const sv, STRLEN newlen)
1935
1936       "sv_grow_fresh"
1937           A cut-down version of sv_grow intended only for when sv is a
1938           freshly-minted SVt_PV, SVt_PVIV, SVt_PVNV, or SVt_PVMG. i.e. sv has
1939           the default flags, has never been any other type, and does not have
1940           an existing string. Basically, just assigns a char buffer and
1941           returns a pointer to it.
1942
1943            char *  sv_grow_fresh(SV * const sv, STRLEN newlen)
1944
1945       "sv_newref"
1946           Increment an SV's reference count.  Use the SvREFCNT_inc() wrapper
1947           instead.
1948
1949            SV *  sv_newref(SV * const sv)
1950
1951       "sv_2num"
1952           NOTE: "sv_2num" is experimental and may change or be removed
1953           without notice.
1954
1955           Return an SV with the numeric value of the source SV, doing any
1956           necessary reference or overload conversion.  The caller is expected
1957           to have handled get-magic already.
1958
1959            SV *  sv_2num(SV * const sv)
1960
1961       "sv_pv"
1962           Use the "SvPV_nolen" macro instead
1963
1964            char *  sv_pv(SV *sv)
1965
1966       "sv_pvbyte"
1967           Use "SvPVbyte_nolen" instead.
1968
1969            char *  sv_pvbyte(SV *sv)
1970
1971       "sv_pvbyten_force"
1972           The backend for the "SvPVbytex_force" macro.  Always use the macro
1973           instead.  If the SV cannot be downgraded from UTF-8, this croaks.
1974
1975            char *  sv_pvbyten_force(SV * const sv, STRLEN * const lp)
1976
1977       "sv_2pvbyte_nolen"
1978           Return a pointer to the byte-encoded representation of the SV.  May
1979           cause the SV to be downgraded from UTF-8 as a side-effect.
1980
1981           Usually accessed via the "SvPVbyte_nolen" macro.
1982
1983            char *  sv_2pvbyte_nolen(SV *sv)
1984
1985       "sv_pvn_force"
1986           Get a sensible string out of the SV somehow.  A private
1987           implementation of the "SvPV_force" macro for compilers which can't
1988           cope with complex macro expressions.  Always use the macro instead.
1989
1990            char *  sv_pvn_force(SV *sv, STRLEN *lp)
1991
1992       "sv_2pv_nolen"
1993           Like sv_2pv(), but doesn't return the length too.  You should
1994           usually use the macro wrapper SvPV_nolen(sv) instead.
1995
1996            char *  sv_2pv_nolen(SV *sv)
1997
1998       "sv_pvutf8n_force"
1999           The backend for the "SvPVutf8x_force" macro.  Always use the macro
2000           instead.
2001
2002            char *  sv_pvutf8n_force(SV * const sv, STRLEN * const lp)
2003
2004       "sv_2pvutf8_nolen"
2005           Return a pointer to the UTF-8-encoded representation of the SV.
2006           May cause the SV to be upgraded to UTF-8 as a side-effect.
2007
2008           Usually accessed via the "SvPVutf8_nolen" macro.
2009
2010            char *  sv_2pvutf8_nolen(SV *sv)
2011
2012       "sv_pvutf8"
2013           Use the "SvPVutf8_nolen" macro instead
2014
2015            char *  sv_pvutf8(SV *sv)
2016
2017       "sv_tainted"
2018           Test an SV for taintedness.  Use "SvTAINTED" instead.
2019
2020            bool  sv_tainted(SV * const sv)
2021
2022       "SvTHINKFIRST"
2023           A quick flag check to see whether an "sv" should be passed to
2024           "sv_force_normal" to be "downgraded" before "SvIVX" or "SvPVX" can
2025           be modified directly.
2026
2027           For example, if your scalar is a reference and you want to modify
2028           the "SvIVX" slot, you can't just do "SvROK_off", as that will leak
2029           the referent.
2030
2031           This is used internally by various sv-modifying functions, such as
2032           "sv_setsv", "sv_setiv" and "sv_pvn_force".
2033
2034           One case that this does not handle is a gv without SvFAKE set.
2035           After
2036
2037               if (SvTHINKFIRST(gv)) sv_force_normal(gv);
2038
2039           it will still be a gv.
2040
2041           "SvTHINKFIRST" sometimes produces false positives.  In those cases
2042           "sv_force_normal" does nothing.
2043
2044            U32  SvTHINKFIRST(SV *sv)
2045
2046       "sv_true"
2047           Returns true if the SV has a true value by Perl's rules.  Use the
2048           "SvTRUE" macro instead, which may call sv_true() or may instead use
2049           an in-line version.
2050
2051            I32  sv_true(SV * const sv)
2052
2053       "sv_untaint"
2054           Untaint an SV.  Use "SvTAINTED_off" instead.
2055
2056            void  sv_untaint(SV * const sv)
2057

Tainting

2059       "sv_taint"
2060           Taint an SV.  Use "SvTAINTED_on" instead.
2061
2062            void  sv_taint(SV *sv)
2063
2064       "TAINT"
2065           If we aren't in taint checking mode, do nothing; otherwise indicate
2066           to ""TAINT_set"" and ""TAINT_PROPER"" that some unspecified element
2067           is tainted.
2068
2069            void  TAINT()
2070
2071       "TAINT_ENV"
2072           Looks at several components of %ENV for taintedness, and calls
2073           ""taint_proper"" if any are tainted.  The components it searches
2074           are things like $PATH.
2075
2076            void  TAINT_ENV
2077
2078       "taint_env"
2079           Implements the "TAINT_ENV" macro, which you should generally use
2080           instead.
2081
2082            void  taint_env()
2083
2084       "TAINT_get"
2085           Returns a boolean as to whether some element is tainted or not.
2086
2087            bool  TAINT_get()
2088
2089       "TAINT_IF"
2090           If "c" evaluates to true, call ""TAINT"" to indicate that something
2091           is tainted; otherwise do nothing.
2092
2093            void  TAINT_IF(bool c)
2094
2095       "TAINTING_get"
2096           Returns a boolean as to whether taint checking is enabled or not.
2097
2098            bool  TAINTING_get()
2099
2100       "TAINTING_set"
2101           Turn taint checking mode off/on
2102
2103            void  TAINTING_set(bool s)
2104
2105       "TAINT_NOT"
2106           Remove any taintedness previously set by, e.g., "TAINT".
2107
2108            void  TAINT_NOT()
2109
2110       "TAINT_PROPER"
2111           If no element is tainted, do nothing; otherwise output a message
2112           (containing "s") that indicates there is a tainting violation.  If
2113           such violations are fatal, it croaks.
2114
2115            void  TAINT_PROPER(const char * s)
2116
2117       "taint_proper"
2118           Implements the "TAINT_PROPER" macro, which you should generally use
2119           instead.
2120
2121            void  taint_proper(const char *f, const char * const s)
2122
2123       "TAINT_set"
2124           If "s" is true, ""TAINT_get"" returns true; If "s" is false,
2125           ""TAINT_get"" returns false;
2126
2127            void  TAINT_set(bool s)
2128
2129       "TAINT_WARN_get"
2130           Returns false if tainting violations are fatal; Returns true if
2131           they're just warnings
2132
2133            bool  TAINT_WARN_get()
2134
2135       "TAINT_WARN_set"
2136           "s" being true indicates ""TAINT_WARN_get"" should return that
2137           tainting violations are just warnings
2138
2139           "s" being false indicates ""TAINT_WARN_get"" should return that
2140           tainting violations are fatal.
2141
2142            void  TAINT_WARN_set(bool s)
2143

Time

2145       There are currently no internal API items in Time
2146

Typedef names

2148       There are currently no internal API items in Typedef names
2149

Unicode Support

2151       "bytes_from_utf8_loc"
2152           NOTE: "bytes_from_utf8_loc" is experimental and may change or be
2153           removed without notice.
2154
2155           Like ""bytes_from_utf8" in perlapi()", but takes an extra
2156           parameter, a pointer to where to store the location of the first
2157           character in "s" that cannot be converted to non-UTF8.
2158
2159           If that parameter is "NULL", this function behaves identically to
2160           "bytes_from_utf8".
2161
2162           Otherwise if *is_utf8p is 0 on input, the function behaves
2163           identically to "bytes_from_utf8", except it also sets
2164           *first_non_downgradable to "NULL".
2165
2166           Otherwise, the function returns a newly created "NUL"-terminated
2167           string containing the non-UTF8 equivalent of the convertible first
2168           portion of "s".  *lenp is set to its length, not including the
2169           terminating "NUL".  If the entire input string was converted,
2170           *is_utf8p is set to a FALSE value, and *first_non_downgradable is
2171           set to "NULL".
2172
2173           Otherwise, *first_non_downgradable is set to point to the first
2174           byte of the first character in the original string that wasn't
2175           converted.  *is_utf8p is unchanged.  Note that the new string may
2176           have length 0.
2177
2178           Another way to look at it is, if *first_non_downgradable is
2179           non-"NULL" and *is_utf8p is TRUE, this function starts at the
2180           beginning of "s" and converts as many characters in it as possible
2181           stopping at the first one it finds that can't be converted to
2182           non-UTF-8.  *first_non_downgradable is set to point to that.  The
2183           function returns the portion that could be converted in a newly
2184           created "NUL"-terminated string, and *lenp is set to its length,
2185           not including the terminating "NUL".  If the very first character
2186           in the original could not be converted, *lenp will be 0, and the
2187           new string will contain just a single "NUL".  If the entire input
2188           string was converted, *is_utf8p is set to FALSE and
2189           *first_non_downgradable is set to "NULL".
2190
2191           Upon successful return, the number of variants in the converted
2192           portion of the string can be computed by having saved the value of
2193           *lenp before the call, and subtracting the after-call value of
2194           *lenp from it.
2195
2196            U8 *  bytes_from_utf8_loc(const U8 *s, STRLEN *lenp,
2197                                      bool *is_utf8p,
2198                                      const U8 **first_unconverted)
2199
2200       "find_uninit_var"
2201           NOTE: "find_uninit_var" is experimental and may change or be
2202           removed without notice.
2203
2204           Find the name of the undefined variable (if any) that caused the
2205           operator to issue a "Use of uninitialized value" warning.  If match
2206           is true, only return a name if its value matches "uninit_sv".  So
2207           roughly speaking, if a unary operator (such as "OP_COS") generates
2208           a warning, then following the direct child of the op may yield an
2209           "OP_PADSV" or "OP_GV" that gives the name of the undefined
2210           variable.  On the other hand, with "OP_ADD" there are two branches
2211           to follow, so we only print the variable name if we get an exact
2212           match.  "desc_p" points to a string pointer holding the description
2213           of the op.  This may be updated if needed.
2214
2215           The name is returned as a mortal SV.
2216
2217           Assumes that "PL_op" is the OP that originally triggered the error,
2218           and that "PL_comppad"/"PL_curpad" points to the currently executing
2219           pad.
2220
2221            SV *  find_uninit_var(const OP * const obase,
2222                                  const SV * const uninit_sv, bool match,
2223                                  const char **desc_p)
2224
2225       "isSCRIPT_RUN"
2226           Returns a bool as to whether or not the sequence of bytes from "s"
2227           up to but not including "send" form a "script run".  "utf8_target"
2228           is TRUE iff the sequence starting at "s" is to be treated as UTF-8.
2229           To be precise, except for two degenerate cases given below, this
2230           function returns TRUE iff all code points in it come from any
2231           combination of three "scripts" given by the Unicode "Script
2232           Extensions" property: Common, Inherited, and possibly one other.
2233           Additionally all decimal digits must come from the same consecutive
2234           sequence of 10.
2235
2236           For example, if all the characters in the sequence are Greek, or
2237           Common, or Inherited, this function will return TRUE, provided any
2238           decimal digits in it are from the same block of digits in Common.
2239           (These are the ASCII digits "0".."9" and additionally a block for
2240           full width forms of these, and several others used in mathematical
2241           notation.)   For scripts (unlike Greek) that have their own digits
2242           defined this will accept either digits from that set or from one of
2243           the Common digit sets, but not a combination of the two.  Some
2244           scripts, such as Arabic, have more than one set of digits.  All
2245           digits must come from the same set for this function to return
2246           TRUE.
2247
2248           *ret_script, if "ret_script" is not NULL, will on return of TRUE
2249           contain the script found, using the "SCX_enum" typedef.  Its value
2250           will be "SCX_INVALID" if the function returns FALSE.
2251
2252           If the sequence is empty, TRUE is returned, but *ret_script (if
2253           asked for) will be "SCX_INVALID".
2254
2255           If the sequence contains a single code point which is unassigned to
2256           a character in the version of Unicode being used, the function will
2257           return TRUE, and the script will be "SCX_Unknown".  Any other
2258           combination of unassigned code points in the input sequence will
2259           result in the function treating the input as not being a script
2260           run.
2261
2262           The returned script will be "SCX_Inherited" iff all the code points
2263           in it are from the Inherited script.
2264
2265           Otherwise, the returned script will be "SCX_Common" iff all the
2266           code points in it are from the Inherited or Common scripts.
2267
2268            bool  isSCRIPT_RUN(const U8 *s, const U8 *send,
2269                               const bool utf8_target)
2270
2271       "is_utf8_non_invariant_string"
2272           Returns TRUE if "is_utf8_invariant_string" in perlapi returns FALSE
2273           for the first "len" bytes of the string "s", but they are,
2274           nonetheless, legal Perl-extended UTF-8; otherwise returns FALSE.
2275
2276           A TRUE return means that at least one code point represented by the
2277           sequence either is a wide character not representable as a single
2278           byte, or the representation differs depending on whether the
2279           sequence is encoded in UTF-8 or not.
2280
2281           See also ""is_utf8_invariant_string" in perlapi", ""is_utf8_string"
2282           in perlapi"
2283
2284            bool  is_utf8_non_invariant_string(const U8 * const s, STRLEN len)
2285
2286       "utf8n_to_uvuni"
2287           "DEPRECATED!"  It is planned to remove "utf8n_to_uvuni" from a
2288           future release of Perl.  Do not use it for new code; remove it from
2289           existing code.
2290
2291           Instead use "utf8_to_uvchr_buf" in perlapi, or rarely,
2292           "utf8n_to_uvchr" in perlapi.
2293
2294           This function was useful for code that wanted to handle both EBCDIC
2295           and ASCII platforms with Unicode properties, but starting in Perl
2296           v5.20, the distinctions between the platforms have mostly been made
2297           invisible to most code, so this function is quite unlikely to be
2298           what you want.  If you do need this precise functionality, use
2299           instead "NATIVE_TO_UNI(utf8_to_uvchr_buf(...))"  or
2300           "NATIVE_TO_UNI(utf8n_to_uvchr(...))".
2301
2302            UV  utf8n_to_uvuni(const U8 *s, STRLEN curlen, STRLEN *retlen,
2303                               U32 flags)
2304
2305       "utf8_to_uvuni"
2306           "DEPRECATED!"  It is planned to remove "utf8_to_uvuni" from a
2307           future release of Perl.  Do not use it for new code; remove it from
2308           existing code.
2309
2310           Returns the Unicode code point of the first character in the string
2311           "s" which is assumed to be in UTF-8 encoding; "retlen" will be set
2312           to the length, in bytes, of that character.
2313
2314           Some, but not all, UTF-8 malformations are detected, and in fact,
2315           some malformed input could cause reading beyond the end of the
2316           input buffer, which is one reason why this function is deprecated.
2317           The other is that only in extremely limited circumstances should
2318           the Unicode versus native code point be of any interest to you.
2319
2320           If "s" points to one of the detected malformations, and UTF8
2321           warnings are enabled, zero is returned and *retlen is set (if
2322           "retlen" doesn't point to NULL) to -1.  If those warnings are off,
2323           the computed value if well-defined (or the Unicode REPLACEMENT
2324           CHARACTER, if not) is silently returned, and *retlen is set (if
2325           "retlen" isn't NULL) so that ("s" + *retlen) is the next possible
2326           position in "s" that could begin a non-malformed character.  See
2327           "utf8n_to_uvchr" in perlapi for details on when the REPLACEMENT
2328           CHARACTER is returned.
2329
2330            UV  utf8_to_uvuni(const U8 *s, STRLEN *retlen)
2331
2332       "uvoffuni_to_utf8_flags"
2333           THIS FUNCTION SHOULD BE USED IN ONLY VERY SPECIALIZED
2334           CIRCUMSTANCES.  Instead, Almost all code should use "uvchr_to_utf8"
2335           in perlapi or "uvchr_to_utf8_flags" in perlapi.
2336
2337           This function is like them, but the input is a strict Unicode (as
2338           opposed to native) code point.  Only in very rare circumstances
2339           should code not be using the native code point.
2340
2341           For details, see the description for "uvchr_to_utf8_flags" in
2342           perlapi.
2343
2344            U8 *  uvoffuni_to_utf8_flags(U8 *d, UV uv, UV flags)
2345
2346       "valid_utf8_to_uvchr"
2347           Like ""utf8_to_uvchr_buf" in perlapi", but should only be called
2348           when it is known that the next character in the input UTF-8 string
2349           "s" is well-formed (e.g., it passes ""isUTF8_CHAR" in perlapi".
2350           Surrogates, non-character code points, and non-Unicode code points
2351           are allowed.
2352
2353            UV  valid_utf8_to_uvchr(const U8 *s, STRLEN *retlen)
2354
2355       "variant_under_utf8_count"
2356           This function looks at the sequence of bytes between "s" and "e",
2357           which are assumed to be encoded in ASCII/Latin1, and returns how
2358           many of them would change should the string be translated into
2359           UTF-8.  Due to the nature of UTF-8, each of these would occupy two
2360           bytes instead of the single one in the input string.  Thus, this
2361           function returns the precise number of bytes the string would
2362           expand by when translated to UTF-8.
2363
2364           Unlike most of the other functions that have "utf8" in their name,
2365           the input to this function is NOT a UTF-8-encoded string.  The
2366           function name is slightly odd to emphasize this.
2367
2368           This function is internal to Perl because khw thinks that any XS
2369           code that would want this is probably operating too close to the
2370           internals.  Presenting a valid use case could change that.
2371
2372           See also ""is_utf8_invariant_string" in perlapi" and
2373           ""is_utf8_invariant_string_loc" in perlapi",
2374
2375            Size_t  variant_under_utf8_count(const U8 * const s,
2376                                             const U8 * const e)
2377

Utility Functions

2379       "my_popen_list"
2380           Implementing function on some systems for PerlProc_popen_list()
2381
2382            PerlIO *  my_popen_list(const char *mode, int n, SV **args)
2383
2384       "my_socketpair"
2385           Emulates socketpair(2) on systems that don't have it, but which do
2386           have enough functionality for the emulation.
2387
2388            int  my_socketpair(int family, int type, int protocol, int fd[2])
2389

Versioning

2391       There are currently no internal API items in Versioning
2392

Warning and Dieing

2394       "deprecate"
2395           Wrapper around Perl_ck_warner_d() to produce a deprecated warning
2396           in the given category with an appropriate message. The "message"
2397           argument must be a C string. The string " is deprecated" will
2398           automatically be added to the end of the "message".
2399
2400              deprecate(U32 category, "message")
2401
2402       "deprecate_disappears_in"
2403           Wrapper around Perl_ck_warner_d() to produce a deprecated warning
2404           in the given category with an appropriate message that the
2405           construct referred to by the message will disappear in a specific
2406           release.  The "when" and "message" arguments must be a C string.
2407           The "when" string is expected to be of the form "5.40", with no
2408           minor element in the version.  The actual message output will be
2409           the result of the following expression "message " is deprecated,
2410           and will disappear in Perl " when" which is why "message" and
2411           "when" must be literal C strings.
2412
2413              deprecate_disappears_in(U32 category, "when", "message")
2414
2415       "deprecate_fatal_in"
2416           Wrapper around Perl_ck_warner_d() to produce a deprecated warning
2417           in the given category with an appropriate message that the
2418           construct referred to by the message will become fatal in a
2419           specific release.  The "when" and "message" arguments must be a C
2420           string.  The "when" string is expected to be of the form "5.40",
2421           with no minor element in the version.  The actual message output
2422           will be the result of the following expression "message " is
2423           deprecated, and will become fatal in Perl " when" which is why
2424           "message" and "when" must be literal C strings.
2425
2426              deprecate_fatal_in(U32 category, "when", "message")
2427
2428       "PL_dowarn"
2429           The C variable that roughly corresponds to Perl's $^W warning
2430           variable.  However, $^W is treated as a boolean, whereas
2431           "PL_dowarn" is a collection of flag bits.
2432
2433           On threaded perls, each thread has an independent copy of this
2434           variable; each initialized at creation time with the current value
2435           of the creating thread's copy.
2436
2437            U8  PL_dowarn
2438
2439       "report_uninit"
2440           Print appropriate "Use of uninitialized variable" warning.
2441
2442            void  report_uninit(const SV *uninit_sv)
2443

XS

2445       There are currently no internal API items in XS
2446

Undocumented elements

2448       This section lists the elements that are otherwise undocumented.  If
2449       you use any of them, please consider creating and submitting
2450       documentation for it.
2451
2452       Experimental and deprecated undocumented elements are listed separately
2453       at the end.
2454
2455        abort_execution
2456        add_above_Latin1_folds
2457        add_cp_to_invlist
2458        _add_range_to_invlist
2459        allocmy
2460        amagic_cmp
2461        amagic_cmp_desc
2462        amagic_cmp_locale
2463        amagic_cmp_locale_desc
2464        amagic_i_ncmp
2465        amagic_i_ncmp_desc
2466        amagic_is_enabled
2467        amagic_ncmp
2468        amagic_ncmp_desc
2469        any_dup
2470        append_utf8_from_native_byte
2471        apply
2472        atfork_lock
2473        atfork_unlock
2474        av_arylen_p
2475        av_extend_guts
2476        av_iter_p
2477        av_nonelem
2478        av_reify
2479        bind_match
2480        block_gimme
2481        boot_core_builtin
2482        boot_core_mro
2483        boot_core_PerlIO
2484        boot_core_UNIVERSAL
2485        build_infix_plugin
2486        _byte_dump_string
2487        call_list
2488        cando
2489        capture_clear
2490        cast_iv
2491        cast_i32
2492        cast_ulong
2493        cast_uv
2494        check_hash_fields_and_hekify
2495        check_regnode_after
2496        check_utf8_print
2497        ck_anoncode
2498        ck_backtick
2499        ck_bitop
2500        ck_cmp
2501        ck_concat
2502        ck_defined
2503        ck_delete
2504        ck_each
2505        ck_entersub_args_core
2506        ck_eof
2507        ck_eval
2508        ck_exec
2509        ck_exists
2510        ck_ftst
2511        ck_fun
2512        ck_glob
2513        ck_grep
2514        ck_helemexistsor
2515        ck_index
2516        ck_isa
2517        ck_join
2518        ck_length
2519        ck_lfun
2520        ck_listiob
2521        ck_match
2522        ck_method
2523        ck_null
2524        ck_open
2525        ck_prototype
2526        ck_readline
2527        ck_refassign
2528        ck_repeat
2529        ck_require
2530        ck_return
2531        ck_rfun
2532        ck_rvconst
2533        ck_sassign
2534        ck_select
2535        ck_shift
2536        ck_smartmatch
2537        ck_sort
2538        ck_spair
2539        ck_split
2540        ck_stringify
2541        ck_subr
2542        ck_substr
2543        ck_svconst
2544        ck_tell
2545        ck_trunc
2546        ck_trycatch
2547        ckwarn
2548        ckwarn_d
2549        class_add_ADJUST
2550        class_add_field
2551        class_apply_attributes
2552        class_apply_field_attributes
2553        class_prepare_initfield_parse
2554        class_prepare_method_parse
2555        class_seal_stash
2556        class_set_field_defop
2557        class_setup_stash
2558        class_wrap_method_body
2559        clear_defarray
2560        closest_cop
2561        cmpchain_extend
2562        cmpchain_finish
2563        cmpchain_start
2564        cmp_desc
2565        cmp_locale_desc
2566        cntrl_to_mnemonic
2567        construct_ahocorasick_from_trie
2568        cop_file_avn
2569        coresub_op
2570        croak_caller
2571        croak_kw_unless_class
2572        croak_memory_wrap
2573        croak_no_mem
2574        croak_popstack
2575        csighandler
2576        csighandler1
2577        csighandler3
2578        current_re_engine
2579        custom_op_get_field
2580        cv_clone_into
2581        cv_const_sv_or_av
2582        cvgv_from_hek
2583        cvgv_set
2584        cvstash_set
2585        cv_undef_flags
2586        cx_dump
2587        cx_dup
2588        cxinc
2589        deb_stack_all
2590        debstackptrs
2591        debug_hash_seed
2592        debug_peep
2593        debug_show_study_flags
2594        debug_studydata
2595        defelem_target
2596        despatch_signals
2597        die_unwind
2598        do_aexec
2599        do_aexec5
2600        do_aspawn
2601        do_eof
2602        does_utf8_overflow
2603        do_exec
2604        do_exec3
2605        dofile
2606        do_gv_dump
2607        do_gvgv_dump
2608        do_hv_dump
2609        doing_taint
2610        do_ipcctl
2611        do_ipcget
2612        do_magic_dump
2613        do_msgrcv
2614        do_msgsnd
2615        do_ncmp
2616        do_op_dump
2617        do_pmop_dump
2618        do_print
2619        do_readline
2620        doref
2621        do_seek
2622        do_semop
2623        do_shmio
2624        do_spawn
2625        do_spawn_nowait
2626        do_sv_dump
2627        do_sysseek
2628        do_tell
2629        do_trans
2630        do_uniprop_match
2631        do_vecget
2632        do_vecset
2633        do_vop
2634        drand48_init_r
2635        drand48_r
2636        dtrace_probe_call
2637        dtrace_probe_load
2638        dtrace_probe_op
2639        dtrace_probe_phase
2640        dump_all_perl
2641        dump_indent
2642        dump_packsubs_perl
2643        dump_sub_perl
2644        dump_sv_child
2645        dumpuntil
2646        dump_vindent
2647        dup_warnings
2648        find_first_differing_byte_pos
2649        find_lexical_cv
2650        find_runcv_where
2651        find_script
2652        foldEQ_latin1_s2_folded
2653        foldEQ_latin1
2654        foldEQ_utf8_flags
2655        force_locale_unlock
2656        _force_out_malformed_utf8_message
2657        form_alien_digit_msg
2658        form_cp_too_large_msg
2659        free_tied_hv_pool
2660        free_tmps
2661        get_and_check_backslash_N_name
2662        get_ANYOFHbbm_contents
2663        get_ANYOFM_contents
2664        get_db_sub
2665        get_debug_opts
2666        get_deprecated_property_msg
2667        getenv_len
2668        get_extended_os_errno
2669        get_hash_seed
2670        get_invlist_iter_addr
2671        get_invlist_offset_addr
2672        get_invlist_previous_index_addr
2673        get_mstats
2674        get_prop_definition
2675        get_prop_values
2676        get_regclass_aux_data
2677        get_re_gclass_aux_data
2678        get_regex_charset_name
2679        get_win32_message_utf8ness
2680        gp_free
2681        gp_ref
2682        grok_bin_oct_hex
2683        grok_bslash_c
2684        grok_bslash_o
2685        grok_bslash_x
2686        gv_check
2687        gv_fetchmeth_internal
2688        gv_override
2689        gv_setref
2690        gv_stashpvn_internal
2691        he_dup
2692        hek_dup
2693        hfree_next_entry
2694        hv_auxalloc
2695        hv_common
2696        hv_common_key_len
2697        hv_delayfree_ent
2698        hv_free_ent
2699        hv_placeholders_p
2700        hv_pushkv
2701        hv_rand_set
2702        hv_undef_flags
2703        infix_plugin_standard
2704        init_argv_symbols
2705        init_constants
2706        init_dbargs
2707        init_debugger
2708        init_i18nl10n
2709        init_named_cv
2710        init_stacks
2711        init_tm
2712        init_uniprops
2713        _inverse_folds
2714        invert
2715        invlist_array
2716        _invlist_array_init
2717        invlist_clear
2718        invlist_clone
2719        _invlist_contains_cp
2720        invlist_contents
2721        _invlist_dump
2722        _invlistEQ
2723        invlist_extend
2724        invlist_highest
2725        _invlist_intersection
2726        _invlist_intersection_maybe_complement_2nd
2727        _invlist_invert
2728        invlist_is_iterating
2729        invlist_iterfinish
2730        invlist_iterinit
2731        invlist_iternext
2732        _invlist_len
2733        invlist_max
2734        invlist_previous_index
2735        _invlist_search
2736        invlist_set_len
2737        invlist_set_previous_index
2738        _invlist_subtract
2739        invlist_trim
2740        _invlist_union
2741        _invlist_union_maybe_complement_2nd
2742        invmap_dump
2743        invoke_exception_hook
2744        io_close
2745        isFF_overlong
2746        is_grapheme
2747        _is_in_locale_category
2748        is_invlist
2749        is_ssc_worth_it
2750        _is_uni_FOO
2751        _is_uni_perl_idcont
2752        _is_uni_perl_idstart
2753        is_utf8_char_helper_
2754        is_utf8_common
2755        is_utf8_FF_helper_
2756        _is_utf8_FOO
2757        is_utf8_overlong
2758        _is_utf8_perl_idcont
2759        _is_utf8_perl_idstart
2760        jmaybe
2761        join_exact
2762        keyword
2763        keyword_plugin_standard
2764        list
2765        load_charnames
2766        locale_panic
2767        localize
2768        lossless_NV_to_IV
2769        lsbit_pos32
2770        lsbit_pos64
2771        magic_clear_all_env
2772        magic_cleararylen_p
2773        magic_clearenv
2774        magic_clearhook
2775        magic_clearhookall
2776        magic_clearisa
2777        magic_clearpack
2778        magic_clearsig
2779        magic_copycallchecker
2780        magic_existspack
2781        magic_freearylen_p
2782        magic_freecollxfrm
2783        magic_freemglob
2784        magic_freeovrld
2785        magic_freeutf8
2786        magic_get
2787        magic_getarylen
2788        magic_getdebugvar
2789        magic_getdefelem
2790        magic_getnkeys
2791        magic_getpack
2792        magic_getpos
2793        magic_getsig
2794        magic_getsubstr
2795        magic_gettaint
2796        magic_getuvar
2797        magic_getvec
2798        magic_killbackrefs
2799        magic_nextpack
2800        magic_regdata_cnt
2801        magic_regdatum_get
2802        magic_regdatum_set
2803        magic_scalarpack
2804        magic_set
2805        magic_set_all_env
2806        magic_setarylen
2807        magic_setcollxfrm
2808        magic_setdbline
2809        magic_setdebugvar
2810        magic_setdefelem
2811        magic_setenv
2812        magic_sethook
2813        magic_sethookall
2814        magic_setisa
2815        magic_setlvref
2816        magic_setmglob
2817        magic_setnkeys
2818        magic_setnonelem
2819        magic_setpack
2820        magic_setpos
2821        magic_setregexp
2822        magic_setsig
2823        magic_setsigall
2824        magic_setsubstr
2825        magic_settaint
2826        magic_setutf8
2827        magic_setuvar
2828        magic_setvec
2829        magic_sizepack
2830        magic_wipepack
2831        make_trie
2832        malloced_size
2833        malloc_good_size
2834        markstack_grow
2835        mbtowc_
2836        mem_collxfrm_
2837        mem_log_alloc
2838        mem_log_del_sv
2839        mem_log_free
2840        mem_log_new_sv
2841        mem_log_realloc
2842        mg_find_mglob
2843        mg_size
2844        mode_from_discipline
2845        more_bodies
2846        more_sv
2847        moreswitches
2848        mortal_getenv
2849        mortalized_pv_copy
2850        mro_get_private_data
2851        mro_meta_dup
2852        mro_meta_init
2853        msbit_pos32
2854        msbit_pos64
2855        multiconcat_stringify
2856        multideref_stringify
2857        my_atof2
2858        my_atof3
2859        my_attrs
2860        my_clearenv
2861        my_lstat
2862        my_lstat_flags
2863        my_memrchr
2864        my_mkostemp_cloexec
2865        my_mkstemp_cloexec
2866        my_stat
2867        my_stat_flags
2868        my_strerror
2869        my_strftime8_temp
2870        my_unexec
2871        newFORM
2872        _new_invlist
2873        _new_invlist_C_array
2874        newMETHOP_internal
2875        newMYSUB
2876        newPROG
2877        new_stackinfo
2878        newSTUB
2879        newSVavdefelem
2880        newXS_deffile
2881        nextargv
2882        no_bareword_allowed
2883        no_bareword_filehandle
2884        noperl_die
2885        notify_parser_that_changed_to_utf8
2886        oopsAV
2887        oopsHV
2888        op_clear
2889        op_integerize
2890        op_lvalue_flags
2891        opmethod_stash
2892        op_prune_chain_head
2893        op_relocate_sv
2894        opslab_force_free
2895        opslab_free
2896        opslab_free_nopad
2897        op_std_init
2898        op_varname
2899        package
2900        package_version
2901        pad_add_weakref
2902        padlist_store
2903        padname_free
2904        PadnameIN_SCOPE
2905        padnamelist_free
2906        parser_dup
2907        parser_free
2908        parser_free_nexttoke_ops
2909        parse_unicode_opts
2910        path_is_searchable
2911        peep
2912        perl_alloc_using
2913        perl_clone_using
2914        PerlEnv_putenv
2915        PerlIO_context_layers
2916        PerlIO_restore_errno
2917        PerlIO_save_errno
2918        PerlLIO_dup_cloexec
2919        PerlLIO_dup2_cloexec
2920        PerlLIO_open_cloexec
2921        PerlLIO_open3_cloexec
2922        PerlProc_pipe_cloexec
2923        PerlSock_accept_cloexec
2924        PerlSock_socket_cloexec
2925        PerlSock_socketpair_cloexec
2926        perly_sighandler
2927        pmruntime
2928        POPMARK
2929        populate_anyof_bitmap_from_invlist
2930        populate_bitmap_from_invlist
2931        populate_invlist_from_bitmap
2932        populate_isa
2933        pregfree
2934        pregfree2
2935        ptr_hash
2936        qerror
2937        ReANY
2938        reentrant_free
2939        reentrant_init
2940        reentrant_retry
2941        reentrant_size
2942        re_exec_indentf
2943        ref
2944        reg_add_data
2945        regcurly
2946        regdump
2947        regdupe_internal
2948        regexec_flags
2949        regfree_internal
2950        reginitcolors
2951        reg_named_buff
2952        reg_named_buff_all
2953        reg_named_buff_exists
2954        reg_named_buff_fetch
2955        reg_named_buff_firstkey
2956        reg_named_buff_iter
2957        reg_named_buff_nextkey
2958        reg_named_buff_scalar
2959        regnext
2960        regnode_after
2961        reg_numbered_buff_fetch
2962        reg_numbered_buff_fetch_flags
2963        reg_numbered_buff_length
2964        reg_numbered_buff_store
2965        regprop
2966        reg_qr_package
2967        reg_skipcomment
2968        reg_temp_copy
2969        re_indentf
2970        re_intuit_start
2971        re_intuit_string
2972        re_op_compile
2973        report_evil_fh
2974        report_redefined_cv
2975        report_wrongway_fh
2976        re_printf
2977        rpeep
2978        rsignal_restore
2979        rsignal_save
2980        rvpv_dup
2981        rxres_save
2982        same_dirent
2983        save_bool
2984        save_clearsv
2985        save_delete
2986        save_destructor
2987        save_destructor_x
2988        save_freeop
2989        save_freepv
2990        save_freesv
2991        save_int
2992        save_iv
2993        save_I8
2994        save_I16
2995        save_I32
2996        save_mortalizesv
2997        save_pptr
2998        save_pushi32ptr
2999        save_pushptrptr
3000        save_re_context
3001        save_sptr
3002        savestack_grow
3003        savestack_grow_cnt
3004        save_strlen
3005        sawparens
3006        scalar
3007        scalarvoid
3008        scan_commit
3009        scan_num
3010        seed
3011        set_ANYOF_arg
3012        set_caret_X
3013        setfd_cloexec
3014        setfd_cloexec_for_nonsysfd
3015        setfd_cloexec_or_inhexec_by_sysfdness
3016        setfd_inhexec
3017        setfd_inhexec_for_sysfd
3018        set_numeric_standard
3019        set_numeric_underlying
3020        set_padlist
3021        _setup_canned_invlist
3022        share_hek
3023        should_warn_nl
3024        should_we_output_Debug_r
3025        sighandler
3026        sighandler1
3027        sighandler3
3028        single_1bit_pos32
3029        single_1bit_pos64
3030        Slab_Alloc
3031        Slab_Free
3032        Slab_to_ro
3033        Slab_to_rw
3034        softref2xv
3035        sortsv_flags_impl
3036        ssc_finalize
3037        ssc_init
3038        stack_grow
3039        str_to_version
3040        strxfrm
3041        study_chunk
3042        sub_crush_depth
3043        sv_add_backref
3044        sv_buf_to_ro
3045        sv_del_backref
3046        sv_i_ncmp
3047        sv_i_ncmp_desc
3048        sv_2iv
3049        sv_magicext_mglob
3050        sv_ncmp
3051        sv_ncmp_desc
3052        sv_only_taint_gmagic
3053        sv_or_pv_pos_u2b
3054        sv_pvbyten_force_wrapper
3055        sv_pvutf8n_force_wrapper
3056        sv_resetpvn
3057        sv_sethek
3058        SvTRUE_common
3059        sv_unglob
3060        sv_2uv
3061        switch_locale_context
3062        sys_init
3063        sys_init3
3064        sys_intern_clear
3065        sys_intern_dup
3066        sys_intern_init
3067        sys_term
3068        tied_method
3069        tmps_grow_p
3070        _to_fold_latin1
3071        TOPMARK
3072        to_uni_fold
3073        _to_uni_fold_flags
3074        to_uni_lower
3075        to_uni_title
3076        to_uni_upper
3077        _to_upper_title_latin1
3078        _to_utf8_fold_flags
3079        _to_utf8_lower_flags
3080        _to_utf8_title_flags
3081        _to_utf8_upper_flags
3082        translate_substr_offsets
3083        try_amagic_bin
3084        try_amagic_un
3085        uiv_2buf
3086        unlnk
3087        unshare_hek
3088        unwind_paren
3089        _utf8n_to_uvchr_msgs_helper
3090        utf16_to_utf8_base
3091        utf16_to_utf8_reversed
3092        utf16_to_utf8
3093        utf8_to_uvchr_buf_helper
3094        utilize
3095        uvoffuni_to_utf8_flags_msgs
3096        uvuni_to_utf8
3097        variant_byte_number
3098        varname
3099        vivify_defelem
3100        vivify_ref
3101        wait4pid
3102        warn_elem_scalar_context
3103        _warn_problematic_locale
3104        was_lvalue_sub
3105        watch
3106        win32_croak_not_implemented
3107        write_to_stderr
3108        xs_boot_epilog
3109        xs_handshake
3110        yyerror
3111        yyerror_pv
3112        yyerror_pvn
3113        yylex
3114        yyparse
3115        yyquit
3116        yyunlex
3117
3118       Next are the experimental undocumented elements
3119
3120        alloc_LOGOP           cx_pushloop_for              invlist_lowest
3121        create_eval_scope     cx_pushloop_plain            newGP
3122        cv_ckproto_len_flags  cx_pushsub                   new_warnings_bitfield
3123        cx_popblock           cx_pushtry                   op_refcnt_dec
3124        cx_popeval            cx_pushwhen                  op_refcnt_inc
3125        cx_popformat          cx_topblock                  op_unscope
3126        cx_popgiven           delete_eval_scope            scan_str
3127        cx_poploop            do_open_raw                  scan_word
3128        cx_popsub             do_open6                     scan_word6
3129        cx_popsub_args        emulate_cop_io               skipspace_flags
3130        cx_popsub_common      get_re_arg                   sv_free2
3131        cx_popwhen            get_vtbl                     sv_kill_backrefs
3132        cx_pushblock          gimme_V                      sv_setpv_freshbuf
3133        cx_pusheval           hv_backreferences_p          sv_setsv_cow
3134        cx_pushformat         hv_kill_backrefs             utf8_to_utf16_base
3135        cx_pushgiven          invlist_highest_range_start
3136
3137       Finally are the deprecated undocumented elements.  Do not use any for
3138       new code; remove all occurrences of all of these from existing code.
3139
3140        get_no_modify  get_opargs  get_ppaddr
3141

AUTHORS

3143       The autodocumentation system was originally added to the Perl core by
3144       Benjamin Stuhl.  Documentation is by whoever was kind enough to
3145       document their functions.
3146

SEE ALSO

3148       config.h, perlapi, perlapio, perlcall, perlclib, perlembed, perlfilter,
3149       perlguts, perlhacktips, perlinterp, perliol, perlmroapi, perlreapi,
3150       perlreguts, perlxs
3151
3152
3153
3154perl v5.38.2                      2023-11-30                     PERLINTERN(1)
Impressum