Devel::PPPort(3perl)

๐Ÿ’– Devel::PPPort ๐Ÿ’–

okay bestie, gather round, because this is Devel::PPPort โ€” the Perl/Pollution/Portability module, straight from the Perl Programmers Reference Guide section of your friendly neighborhood manual. it's giving "your XS code works on ancient Perls too" and honestly? iconic. โœจ


โœจ NAME โœจ

Devel::PPPort โ€” Perl/Pollution/Portability ๐Ÿฆ‹


๐ŸŒธ SYNOPSIS ๐ŸŒธ

look at this gorgeous little snippet, no notes:

Devel::PPPort::WriteFile();   # defaults to ./ppport.h
Devel::PPPort::WriteFile('someheader.h');

# Same as above but retrieve contents rather than write file
my $contents = Devel::PPPort::GetFileContents();
my $contents = Devel::PPPort::GetFileContents('someheader.h');

and here's how you actually start using Devel::PPPort for XS projects, step by step bestie:

$ cpan Devel::PPPort
$ perl -MDevel::PPPort -e'Devel::PPPort::WriteFile'
$ perl ppport.h --compat-version=5.6.1 --patch=diff.patch *.xs
$ patch -p0 < diff.patch
$ echo ppport.h >>MANIFEST

๐Ÿ‘‘ DESCRIPTION ๐Ÿ‘‘

so here's the tea ๐Ÿ“: Perl's API has changed over time. it keeps gaining new features, new functions, more flexibility, and it's been reducing the impact on the C namespace environment (that's the whole "reduced pollution" thing, iykyk). the header file this module writes โ€” usually called ppport.h โ€” tries its absolute best to bring some of those newer Perl API features to older versions of Perl. which means you can worry less about keeping track of every old release ever, while your users still get to reap the benefit. main character energy for everybody involved, honestly. ๐Ÿ’…

Devel::PPPort contains two functions: WriteFile and GetFileContents. WriteFile's only purpose in life is to write the ppport.h C header file. that file contains a series of macros and โ€” if you explicitly ask for them โ€” functions that let XS modules be built using older versions of Perl. currently, Perl versions from 5.003_07 to 5.35.9 are supported. periodt. โญ

GetFileContents can be used to retrieve the file contents rather than writing it out.

this module is used by h2xs to write the file ppport.h. ๐ŸŽ€

๐Ÿงš Why use ppport.h? ๐Ÿงš

you should use ppport.h in modern code so your code works with the widest range of Perl interpreters possible, without significant additional work. no cap, that's just free real estate.

you should attempt to get older code to fully use ppport.h, because the reduced pollution of newer Perl versions is an important thing. it's so important that the old polluting ways of original Perl modules will not be supported very far into the future, and your module will almost certainly break! ๐Ÿ˜ญ so by adapting to it now, you'll gain compatibility and a sense of having done the electronic ecology some good. look at you, saving the ecosystem, so proud. ๐ŸŒˆ

๐ŸŒŸ How to use ppport.h ๐ŸŒŸ

do not direct the users of your module to download Devel::PPPort. they are most probably not XS writers, bestie, don't do that to them. also, don't make ppport.h optional. instead, just take the most recent copy of ppport.h that you can find (e.g. by generating it with the latest Devel::PPPort release from CPAN), copy it into your project, adjust your project to use it, test it, and distribute the header along with your module. slay. โœจ

it is important to use the most recent version of ppport.h. but you do need to test before shipping a newer version than the one you already had. one possible failure is that someone had to convert a backported element from a macro into a function, and actual functions must be enabled with a NEED macro to minimize the possibility of namespace pollution. see HACKERS for details. the developers of Devel::PPPort want to hear if there are other problems that arise from using a later ppport.h. use <https://github.com/Dual-Life/Devel-PPPort/issues> to report any. ๐Ÿซถ

๐Ÿ’€ Running ppport.h ๐Ÿ’€

but ppport.h is more than just a C header. it's also a Perl script that can check your source code! ๐Ÿ“ it will suggest hints and portability notes, and can even make suggestions on how to change your code. you can run it like any other Perl program:

perl ppport.h [options] [files]

it also has embedded documentation, so you can use

perldoc ppport.h

to find out more about how to use it. ๐Ÿฆ‹


๐ŸŽ€ FUNCTIONS ๐ŸŽ€

โœจ WriteFile โœจ

WriteFile takes one optional argument. when called with one argument, it expects to be passed a filename. when called with no arguments, it defaults to the filename ppport.h.

the function returns a true value if the file was written successfully. otherwise it returns a false value. ๐Ÿ˜Œ

๐Ÿ’œ GetFileContents ๐Ÿ’œ

GetFileContents behaves like WriteFile above, but returns the contents of the would-be file rather than writing it out. same vibes, no actual file left behind. ๐ŸŒธ


๐Ÿ”ฅ COMPATIBILITY ๐Ÿ”ฅ

ppport.h supports Perl versions from 5.003_07 to 5.35.9 in threaded and non-threaded configurations. yes, both. we don't play favorites. ๐Ÿ‘‘

๐ŸŒˆ Provided Perl compatibility API ๐ŸŒˆ

the header file written by this module, typically ppport.h, provides access to the following elements of the Perl API that are not otherwise available in Perl releases older than when those elements were first introduced. (note that many of these are not supported all the way back to 5.003_07, but it may be that they are supported back as far as you need โ€” see "Supported Perl API, sorted by version" for that information.) โญ


more coming, bestie, don't go anywhere ๐Ÿ’…

okay bestie, the roll call is NOT over, and honestly she is barely getting warmed up ๐Ÿ’… so grab your iced coffee, because this is the rest of the guest list: every single macro, function, and variable that Devel::PPPort will lovingly back-fill for you so your XS code doesn't crumble on an ancient Perl. No descriptions down here โ€” these are just the names, alphabetized, iconic, unbothered. ๐ŸŽ€


โœจ the underscore-and-a girlies โœจ

Leading underscore? Cute. Lowercase a? Also cute. This is where the context macros and the array helpers chill.

_aMY_CXT
aMY_CXT
aMY_CXT_
__ASSERT_
ASSUME
aTHX
aTHX_
aTHXR
aTHXR_
av_count
AvFILLp
av_tindex
av_top_index

๐Ÿฆ‹ the B section (she's tiny and she knows it) ๐Ÿฆ‹

Literally two entries. Main character energy in a very small package.

BOM_UTF8
boolSV

๐Ÿ’– the C section: callers, warnings, and cops ๐Ÿ’–

This is where the call_* squad hangs out, plus the entire ckWARN/ck_warner warning family, the Cop* accessors, and the croak_* crew (they're dramatic, they throw, that's the vibe).

call_argv
caller_cx
call_method
call_pv
call_sv
C_ARRAY_END
C_ARRAY_LENGTH
cBOOL
ckWARN
ckWARN2
ckWARN2_d
ckWARN3
ckWARN3_d
ckWARN4
ckWARN4_d
ckWARN_d
ck_warner
ck_warner_d
CopFILE
CopFILEAV
CopFILEGV
CopFILEGV_set
CopFILE_set
CopFILESV
CopSTASH
CopSTASH_eq
CopSTASHPV
CopSTASHPV_set
CopSTASH_set
CopyD
CPERLscope
croak_memory_wrap
croak_nocontext
croak_no_modify
croak_sv
croak_xs_usage

๐ŸŽ€ the d-prefixed declaration squad ๐ŸŽ€

Every single one of these starts with a lowercase d and honestly? That's the whole personality. Declarations, setup, and scaffolding โ€” the backstage crew making your XS function even exist.

dAX
dAXMARK
DECLARATION_FOR_LC_NUMERIC_MANIPULATION
DEFSV
DEFSV_set
die_sv
dITEMS
dMY_CXT
dMY_CXT_SV
dNOOP
dTHR
dTHX
dTHXa
dTHXoa
dTHXR
dUNDERBAR
dVAR
dXCPT
dXSTARG

๐ŸŒธ E is for eval, extern, and โœจerrorโœจ energy ๐ŸŒธ

Short and spicy. Four of these are about calling into Perl from C, one's about closing an extern "C" block, and ERRSV is just there, judging.

END_EXTERN_C
ERRSV
eval_pv
eval_sv
EXTERN_C

๐Ÿซถ F stands alone ๐Ÿซถ

One (1) entry. She doesn't need company. She's doing case-folding-adjacent business and she's thriving.

foldEQ_utf8

๐Ÿ‘‘ the G section: getters, grokkers, and gv-things ๐Ÿ‘‘

We love a section that starts with get_ and ends with globs. There's a whole grok_* subsection in here because sometimes you just gotta parse a number string, iykyk.

get_av
get_cv
get_cvn_flags
get_cvs
get_hv
get_sv
G_METHOD
G_RETHROW
grok_bin
grok_hex
grok_number
GROK_NUMERIC_RADIX
grok_numeric_radix
grok_oct
gv_fetchpvn_flags
gv_fetchpvs
gv_fetchsv
gv_init_pvn
gv_stashpvn
gv_stashpvs
GvSVn

๐ŸŒˆ the H section: hashes, hek keys, and hv-stuff ๐ŸŒˆ

Tiny, mighty, and extremely hv_-flavored.

HEf_SVKEY
HeUTF8
hv_fetchs
HvNAME_get
HvNAMELEN_get
hv_stores

๐Ÿ’œ the I section, part one: locale flags + the ctype cinematic universe ๐Ÿ’œ

Bestie. Look at this. The is* macros are their own franchise โ€” and it's only getting bigger in the next chunk. Buckle in. ๐Ÿ“

IN_LOCALE
IN_LOCALE_COMPILETIME
IN_LOCALE_RUNTIME
IN_PERL_COMPILETIME
INT2PTR
isALNUM
isALNUM_A
isALNUMC
isALNUMC_A
isALNUMC_L1
isALPHA
isALPHA_A
isALPHA_L1
isALPHA_LC_utf8_safe
isALPHANUMERIC
isALPHANUMERIC_A
isALPHANUMERIC_L1
isALPHANUMERIC_LC
isALPHANUMERIC_LC_utf8_safe
isALPHANUMERIC_utf8_safe
isALPHANUMERIC_uvchr
isALPHA_utf8_safe
isALPHA_uvchr
isASCII
isASCII_A
isASCII_L1
isASCII_LC
isASCII_utf8_safe
isASCII_uvchr
isBLANK
isBLANK_A
isBLANK_L1
isBLANK_LC
isBLANK_LC_utf8_safe
isBLANK_utf8_safe
isBLANK_uvchr
isCNTRL
isCNTRL_A
isCNTRL_L1
isCNTRL_LC_utf8_safe
isCNTRL_utf8_safe
isCNTRL_uvchr
isDIGIT
isDIGIT_A
isDIGIT_L1
isDIGIT_LC_utf8_safe
isDIGIT_utf8_safe
isDIGIT_uvchr
isGRAPH
isGRAPH_A
isGRAPH_L1
isGRAPH_LC_utf8_safe
isGRAPH_utf8_safe
isGRAPH_uvchr

๐Ÿ’œ the I section, part two: the ctype saga continues ๐Ÿ’œ

Same franchise, second season. We've got the number-parsing flags, the isID/isWORD/isX family, and then the IV descriptors showing up right at the end like "hey, we're also vowels." ๐Ÿ˜ญ

isGV_with_GP
isIDCONT
isIDCONT_A
isIDCONT_L1
isIDCONT_LC
isIDCONT_LC_utf8_safe
isIDCONT_utf8_safe
isIDCONT_uvchr
isIDFIRST
isIDFIRST_A
isIDFIRST_L1
isIDFIRST_LC
isIDFIRST_LC_utf8_safe
isIDFIRST_utf8_safe
isIDFIRST_uvchr
is_invariant_string
isLOWER
isLOWER_A
isLOWER_L1
isLOWER_LC_utf8_safe
isLOWER_utf8_safe
isLOWER_uvchr
IS_NUMBER_GREATER_THAN_UV_MAX
IS_NUMBER_INFINITY
IS_NUMBER_IN_UV
IS_NUMBER_NAN
IS_NUMBER_NEG
IS_NUMBER_NOT_INT
isOCTAL
isOCTAL_A
isOCTAL_L1
isPRINT
isPRINT_A
isPRINT_L1
isPRINT_LC_utf8_safe
isPRINT_utf8_safe
isPRINT_uvchr
isPSXSPC
isPSXSPC_A
isPSXSPC_L1
isPSXSPC_LC_utf8_safe
isPSXSPC_utf8_safe
isPSXSPC_uvchr
isPUNCT
isPUNCT_A
isPUNCT_L1
isPUNCT_LC_utf8_safe
isPUNCT_utf8_safe
isPUNCT_uvchr
isSPACE
isSPACE_A
isSPACE_L1
isSPACE_LC_utf8_safe
isSPACE_utf8_safe
isSPACE_uvchr
isUPPER
isUPPER_A
isUPPER_L1
isUPPER_LC_utf8_safe
isUPPER_utf8_safe
isUPPER_uvchr
isUTF8_CHAR
is_utf8_invariant_string
isWORDCHAR
isWORDCHAR_A
isWORDCHAR_L1
isWORDCHAR_LC
isWORDCHAR_LC_utf8_safe
isWORDCHAR_utf8_safe
isWORDCHAR_uvchr
isXDIGIT
isXDIGIT_A
isXDIGIT_L1
isXDIGIT_LC
isXDIGIT_LC_utf8_safe
isXDIGIT_utf8_safe
isXDIGIT_uvchr
IVdf
IVSIZE
IVTYPE

โœจ the L section: locales, likelihood, and loading โœจ

Radio edit: seven entries, all bangers.

LATIN1_TO_NATIVE
LC_NUMERIC_LOCK
LC_NUMERIC_UNLOCK
LIKELY
load_module
LOCK_LC_NUMERIC_STANDARD
LOCK_NUMERIC_STANDARD

๐Ÿงš the M section: memory, memcmp-flavored macros, and MY_CXT ๐Ÿงš

Look at how many m-prefixed push macros there are. mPUSHi, mPUSHn, mPUSHp, mPUSHs, mPUSHu โ€” and then their louder cousins with an X in the middle. Siblings behavior. Also MY_CXT makes a cameo at the end. ๐Ÿ’…

memCHRs
memEQ
memEQs
memNE
memNEs
mess
mess_nocontext
mess_sv
mg_findext
MoveD
mPUSHi
mPUSHn
mPUSHp
mPUSHs
mPUSHu
MUTABLE_AV
MUTABLE_CV
MUTABLE_GV
MUTABLE_HV
MUTABLE_IO
MUTABLE_PTR
MUTABLE_SV
mXPUSHi
mXPUSHn
mXPUSHp
mXPUSHs
mXPUSHu
MY_CXT
MY_CXT_CLONE
MY_CXT_INIT
my_snprintf
my_sprintf
my_strlcat
my_strlcpy
my_strnlen

๐ŸŽ€ the N section: new-SV factory + string functions you already know and love ๐ŸŽ€

newSVpvn brought all her variants to the party โ€” flags, share, utf8, you name it. Also the Newx/Newxc/Newxz trio, because allocation is a lifestyle.

NATIVE_TO_LATIN1
NATIVE_TO_UNI
newCONSTSUB
newRV_inc
newRV_noinc
newSVpvn
newSVpvn_flags
newSVpvn_share
newSVpvn_utf8
newSVpvs
newSVpvs_flags
newSVpvs_share
newSVsv_flags
newSVsv_nomg
newSV_type
newSVuv
Newx
Newxc
Newxz
NOOP
NOT_REACHED
NUM2PTR
NVef
NVff
NVgf
NVTYPE

๐Ÿฆ‹ the O section: op sibling drama ๐Ÿฆ‹

Five entries, all about ops and their siblings. Family therapy but in C macros.

OpHAS_SIBLING
OpLASTSIB_set
OpMAYBESIB_set
OpMORESIB_set
OpSIBLING

๐Ÿ‘‘ the P section, part one: pack warnings, Perl wrappers, and the magic constants begin ๐Ÿ‘‘

PERL_MAGIC_* is a lot of named magic. She's thorough. We respect it. ๐ŸŒˆ

packWARN
packWARN2
packWARN3
packWARN4
PERL_ABS
PERL_ARGS_ASSERT_CROAK_XS_USAGE
Perl_ck_warner
Perl_ck_warner_d
Perl_croak_no_modify
PERL_HASH
PERL_INT_MAX
PERL_INT_MIN
PERLIO_FUNCS_CAST
PERLIO_FUNCS_DECL
PERL_LONG_MAX
PERL_LONG_MIN
PERL_MAGIC_arylen
PERL_MAGIC_backref
PERL_MAGIC_bm
PERL_MAGIC_collxfrm
PERL_MAGIC_dbfile
PERL_MAGIC_dbline
PERL_MAGIC_defelem
PERL_MAGIC_env
PERL_MAGIC_envelem
PERL_MAGIC_ext
PERL_MAGIC_fm
PERL_MAGIC_glob
PERL_MAGIC_isa
PERL_MAGIC_isaelem
PERL_MAGIC_mutex
PERL_MAGIC_nkeys
PERL_MAGIC_overload
PERL_MAGIC_overload_elem
PERL_MAGIC_overload_table
PERL_MAGIC_pos
PERL_MAGIC_qr
PERL_MAGIC_regdata
PERL_MAGIC_regdatum
PERL_MAGIC_regex_global
PERL_MAGIC_shared
PERL_MAGIC_shared_scalar
PERL_MAGIC_sig
PERL_MAGIC_sigelem
PERL_MAGIC_substr
PERL_MAGIC_sv
PERL_MAGIC_taint
PERL_MAGIC_tied
PERL_MAGIC_tiedelem
PERL_MAGIC_tiedscalar
PERL_MAGIC_utf8
PERL_MAGIC_uvar
PERL_MAGIC_uvar_elem
PERL_MAGIC_vec
PERL_MAGIC_vstring

๐Ÿ‘‘ the P section, part two: pretty-dump flags, scan flags, and the SIZE CONSTANT ZONE ๐Ÿ‘‘

We're in full uppercase mode now and honestly it's giving "preprocessor directive" realness. Also the PERL_VERSION_* comparison macros show up right before the PL_* variables do, like a little intermission. โญ

PERL_PV_ESCAPE_ALL
PERL_PV_ESCAPE_FIRSTCHAR
PERL_PV_ESCAPE_NOBACKSLASH
PERL_PV_ESCAPE_NOCLEAR
PERL_PV_ESCAPE_QUOTE
PERL_PV_ESCAPE_RE
PERL_PV_ESCAPE_UNI
PERL_PV_ESCAPE_UNI_DETECT
PERL_PV_PRETTY_DUMP
PERL_PV_PRETTY_ELLIPSES
PERL_PV_PRETTY_LTGT
PERL_PV_PRETTY_NOCLEAR
PERL_PV_PRETTY_QUOTE
PERL_PV_PRETTY_REGPROP
PERL_QUAD_MAX
PERL_QUAD_MIN
PERL_SCAN_ALLOW_UNDERSCORES
PERL_SCAN_DISALLOW_PREFIX
PERL_SCAN_GREATER_THAN_UV_MAX
PERL_SCAN_SILENT_ILLDIGIT
PERL_SHORT_MAX
PERL_SHORT_MIN
PERL_SIGNALS_UNSAFE_FLAG
PERL_STACK_OFFSET_DEFINED
PERL_STACK_REALIGN
PERL_STATIC_INLINE
PERL_UCHAR_MAX
PERL_UCHAR_MIN
PERL_UINT_MAX
PERL_UINT_MIN
PERL_ULONG_MAX
PERL_ULONG_MIN
PERL_UNUSED_ARG
PERL_UNUSED_CONTEXT
PERL_UNUSED_DECL
PERL_UNUSED_RESULT
PERL_UNUSED_VAR
PERL_UQUAD_MAX
PERL_UQUAD_MIN
PERL_USE_GCC_BRACE_GROUPS
PERL_USHORT_MAX
PERL_USHORT_MIN
PERL_VERSION_EQ
PERL_VERSION_GE
PERL_VERSION_GT
PERL_VERSION_LE
PERL_VERSION_LT
PERL_VERSION_NE

๐Ÿ‘‘ the P section, part three: the PL_* global variables ๐Ÿ‘‘

Warning: this is a long list of interpreter globals and it's about to be followed by even more p-prefixed things. She's committed. ๐Ÿ˜ญ

Perl_warner
Perl_warner_nocontext
PL_bufend
PL_bufptr
PL_compiling
PL_copline
PL_curcop
PL_curstash
PL_DBsignal
PL_DBsingle
PL_DBsub
PL_DBtrace
PL_debstash
PL_defgv
PL_diehook
PL_dirty
PL_dowarn
PL_errgv
PL_error_count
PL_expect
PL_hexdigit
PL_hints
PL_in_my
PL_in_my_stash
PL_laststatval
PL_lex_state
PL_lex_stuff
PL_linestr
PL_mess_sv
PL_na
PL_no_modify
PL_parser
PL_perldb
PL_perl_destruct_level
PL_ppaddr
PL_rsfp
PL_rsfp_filters
PL_signals
PL_stack_base
PL_stack_sp
PL_statcache
PL_stdingv
PL_Sv
PL_sv_arenaroot
PL_sv_no
PL_sv_undef
PL_sv_yes
PL_tainted
PL_tainting
PL_tokenbuf
PL_Xpv

๐Ÿ™ˆ the P section, finale: context params, pointers, poisons, and pretty-printers ๐Ÿ™ˆ

Tiny leading underscores (_pMY_CXT, pMY_CXT, pMY_CXT_), then the whole Poison* set, then the pTHX twins, then all the PTR2* conversions, then PUSH*, and finally the three pv_* pretty-print helpers. Chef's kiss ending. ๐Ÿ’‹

_pMY_CXT
pMY_CXT
pMY_CXT_
Poison
PoisonFree
PoisonNew
PoisonWith
pTHX
pTHX_
PTR2IV
PTR2nat
PTR2NV
PTR2ul
PTR2UV
PTRV
PUSHmortal
PUSHu
pv_display
pv_escape
pv_pretty

๐Ÿ’€ the R section is two entries and one of them is in all caps ๐Ÿ’€

REPLACEMENT_CHARACTER_UTF8
RESTORE_LC_NUMERIC

๐ŸŒธ and finally, the S section ๐ŸŒธ

Saving, stack offsets, extern-C bookends, MY_CXT setup, statements-as-expressions, and two very important locale/numeric STORE macros to close us out. She ended the list on a high note, fr fr. ๐Ÿซถ

SAVE_DEFSV
Stack_off_t
Stack_off_t_MAX
START_EXTERN_C
START_MY_CXT
start_subparse
STMT_END
STMT_START
STORE_LC_NUMERIC_SET_STANDARD
STORE_NUMERIC_SET_STANDARD
  • STR_WITH_LEN
  • sv_2pv
  • sv_2pvbyte
  • sv_2pvbyte_nolen
  • sv_2pv_flags
  • sv_2pv_nolen
  • sv_2uv
  • sv_catpvf_mg
  • sv_catpvf_mg_nocontext
  • sv_catpv_mg
  • sv_catpvn_mg
  • sv_catpvn_nomg
  • sv_catpvs
  • sv_catsv_mg
  • sv_catsv_nomg
  • SV_CONST_RETURN
  • SV_COW_DROP_PV
  • SV_COW_SHARED_HASH_KEYS
  • SVf
  • SVfARG
  • SVf_UTF8
  • SvGETMAGIC
  • SV_GMAGIC
  • SV_HAS_TRAILING_NUL
  • SV_IMMEDIATE_UNREF
  • SvIV_nomg
  • sv_len_utf8
  • sv_len_utf8_nomg
  • sv_magic_portable
  • SvMAGIC_set
  • sv_mortalcopy_flags
  • SV_MUTABLE_RETURN
  • SV_NOSTEAL
  • SvNV_nomg
  • SvPVbyte
  • SvPVCLEAR
  • SvPV_const
  • SvPV_flags
  • SvPV_flags_const
  • SvPV_flags_const_nolen
  • SvPV_flags_mutable
  • SvPV_force
  • SvPV_force_flags
  • SvPV_force_flags_mutable
  • SvPV_force_flags_nolen
  • SvPV_force_mutable
  • SvPV_force_nolen
  • SvPV_force_nomg
  • SvPV_force_nomg_nolen
  • SvPV_mutable
  • sv_pvn_force_flags
  • sv_pvn_nomg
  • SvPV_nolen
  • SvPV_nolen_const
  • SvPV_nomg
  • SvPV_nomg_const
  • SvPV_nomg_const_nolen
  • SvPV_nomg_nolen
  • SvPV_renew
  • SvPVX_const
  • SvPVX_mutable
  • SvPVx_nolen_const
  • SvREFCNT_dec_NN
  • SvREFCNT_inc
  • SvREFCNT_inc_NN
  • SvREFCNT_inc_simple
  • SvREFCNT_inc_simple_NN
  • SvREFCNT_inc_simple_void
  • SvREFCNT_inc_simple_void_NN
  • SvREFCNT_inc_void
  • SvREFCNT_inc_void_NN
  • SvRV_set
  • SvRX
  • SvRXOK
  • sv_setiv_mg
  • sv_setnv_mg
  • sv_setpvf_mg
  • sv_setpvf_mg_nocontext
  • sv_setpv_mg
  • sv_setpvn_mg
  • sv_setpvs
  • sv_setsv_flags
  • sv_setsv_mg
  • sv_setsv_nomg
  • sv_setuv
  • sv_setuv_mg
  • SvSHARED_HASH
  • SV_SMAGIC
  • SvSTASH_set
  • SvTRUE_nomg
  • sv_unmagicext
  • SvUOK
  • sv_usepvn_mg
  • SvUTF8
  • SV_UTF8_NO_ENCODING
  • sv_uv
  • SvUV
  • SvUV_nomg
  • SvUV_set
  • SvUVX
  • SvUVx
  • SvUVXx
  • sv_vcatpvf
  • sv_vcatpvf_mg
  • SvVOK
  • sv_vsetpvf
  • sv_vsetpvf_mg
  • SvVSTRING
  • sv_vstring_get
  • SvVSTRING_mg
  • switch_to_global_locale
  • sync_locale
  • toFOLD_utf8_safe
  • toFOLD_uvchr
  • toLOWER_utf8_safe
  • toLOWER_uvchr
  • toTITLE_utf8_safe
  • toTITLE_uvchr
  • toUPPER_utf8_safe
  • toUPPER_uvchr
  • UNDERBAR
  • UNICODE_REPLACEMENT
  • UNI_TO_NATIVE
  • UNLIKELY
  • UNLOCK_LC_NUMERIC_STANDARD
  • UNLOCK_NUMERIC_STANDARD
  • UTF8_CHK_SKIP
  • UTF8f
  • UTF8fARG
  • UTF8_IS_INVARIANT
  • UTF8_MAXBYTES
  • UTF8_MAXBYTES_CASE
  • UTF8_SAFE_SKIP
  • UTF8_SKIP
  • utf8_to_uvchr
  • utf8_to_uvchr_buf
  • UVCHR_IS_INVARIANT
  • UVCHR_SKIP
  • UVof
  • UVSIZE
  • UVTYPE
  • UVuf
  • UVXf
  • UVxf
  • vload_module
  • vmess
  • vnewSVpvf
  • vwarner
  • WARN_ALL
  • WARN_AMBIGUOUS
  • WARN_ASSERTIONS
  • WARN_BAREWORD
  • WARN_CLOSED
  • WARN_CLOSURE
  • WARN_DEBUGGING
  • WARN_DEPRECATED
  • WARN_DIGIT
  • warner
  • WARN_EXEC
  • WARN_EXITING
  • WARN_GLOB
  • WARN_INPLACE
  • WARN_INTERNAL
  • WARN_IO
  • WARN_LAYER
  • WARN_MALLOC
  • WARN_MISC
  • WARN_NEWLINE
  • warn_nocontext
  • WARN_NUMERIC
  • WARN_ONCE
  • WARN_OVERFLOW
  • WARN_PACK
  • WARN_PARENTHESIS
  • WARN_PIPE
  • WARN_PORTABLE
  • WARN_PRECEDENCE
  • WARN_PRINTF
  • WARN_PROTOTYPE
  • WARN_QW
  • WARN_RECURSION
  • WARN_REDEFINE
  • WARN_REGEXP
  • WARN_RESERVED
  • WARN_SEMICOLON
  • WARN_SEVERE
  • WARN_SIGNAL
  • WARN_SUBSTR
  • warn_sv
  • WARN_SYNTAX
  • WARN_TAINT
  • WARN_THREADS
  • WARN_UNINITIALIZED
  • WARN_UNOPENED
  • WARN_UNPACK
  • WARN_UNTIE
  • WARN_UTF8
  • WARN_VOID
  • WIDEST_UTYPE
  • XCPT_CATCH
  • XCPT_RETHROW
  • XCPT_TRY_END
  • XCPT_TRY_START
  • XPUSHmortal
  • XPUSHu
  • XSprePUSH
  • XSPROTO
  • XSRETURN
  • XSRETURN_UV
  • XST_mUV
  • ZeroD

๐Ÿ’œ Supported Perl API, sorted by version ๐Ÿ’œ

okay bestie, this next bit is the full buffet, but sorted by which perl release first blessed us with it โœจ. The list below has literally everything โ€” every API element that exists, all of it โ€” including the stuff ppport.h is out here helping you with and the stuff it does absolutely nothing about. No gatekeeping here, we tell you about the whole squad ๐Ÿซถ

Now, some of these are just... not gonna time-travel for you, and that's not a skill issue, it's a physics issue. Like, UTF-8 functionality? It genuinely does not exist prior to the release where it was first introduced. Nothing to backport, the code wasn't born yet ๐Ÿ˜ญ

But other ones? It's purely that nobody has implemented support yet. So if you're feeling generous: patches welcome! ๐Ÿ’– Some elements got ported backward for some releases, but not all the way back to 5.003_07. Sad but true.

If some element โ€” call it ELEMENT โ€” isn't showing up on this list, you can sleuth it out yourself with:

perl ppport.h --api-info=ELEMENT

A few entries below are tagged DEPRECATED. Do not use those in new code, and if you've got them chilling in existing code, you should be migrating them to something better. Respectfully, move on ๐Ÿ’…

Some entries are tagged "experimental". That means, generally speaking, don't use them. They can get yanked or rewritten with zero notice, no cap. Curious why one of them is experimental? Email the crew at <mailto:perl5-porters@perl.org> ๐Ÿ“ง

And some entries are tagged "undocumented". That's your signal that they are not necessarily considered stable and could be changed or removed in some future release without warning. So yeah, using them without further checking is a bad idea, periodt. Could be they're perl-core-use-only ๐Ÿ‘‘. Or could be that Devel::PPPort just doesn't know where their docs live, or that it's simply an oversight that nobody documented them yet. Either way, if you want to use one โ€” and maybe even get it backported โ€” send mail to <mailto:perl5-porters@perl.org> first ๐Ÿ’Œ


๐ŸŒธ perl 5.35.9

  • NV_ZERO_IS_ALLBITS_ZERO
  • PERL_INC_VERSION_LIST
  • sv_numeq
  • sv_numeq_flags
  • sv_streq
  • sv_streq_flags
  • USE_C_BACKTRACE
  • WARN_EXPERIMENTAL__ARGS_ARRAY_WITH_SIGNATURES
  • WARN_EXPERIMENTAL__BUILTIN

๐ŸŒธ perl 5.35.8

  • op_wrap_finally โ€” (marked experimental)

๐ŸŒธ perl 5.35.7

  • phase_name

๐ŸŒธ perl 5.35.6

  • CopFILEAVn
  • sv_setpvn_fresh

๐ŸŒธ perl 5.35.5

  • SAVESTRLEN
  • WARN_EXPERIMENTAL__FOR_LIST

๐ŸŒธ perl 5.35.4

  • newDEFEROP โ€” (marked experimental)
  • PERL_THREAD_LOCAL
  • ST_DEV_SIGN
  • ST_DEV_SIZE
  • SvIsBOOL
  • sv_setbool
  • sv_setbool_mg
  • sv_setrv_inc
  • sv_setrv_inc_mg
  • sv_setrv_noinc
  • sv_setrv_noinc_mg
  • WARN_EXPERIMENTAL__DEFER

๐ŸŒธ perl 5.35.1

  • av_new_alloc
  • HAS_FFS
  • HAS_FFSL
  • HAS_NL_LANGINFO_L
  • HAS_NON_INT_BITFIELDS
  • HAS_STRXFRM_L
  • newAV_alloc_x
  • newAV_alloc_xz

๐ŸŒธ perl 5.33.8

  • cophh_exists_pv โ€” (marked experimental)
  • cophh_exists_pvn โ€” (marked experimental)
  • cophh_exists_pvs โ€” (marked experimental)
  • cophh_exists_sv โ€” (marked experimental)
  • cop_hints_exists_pv
  • cop_hints_exists_pvn
  • cop_hints_exists_pvs
  • cop_hints_exists_sv

๐ŸŒธ perl 5.33.7

  • newTRYCATCHOP โ€” (marked experimental)
  • WARN_EXPERIMENTAL__TRY

๐ŸŒธ perl 5.33.5

  • GETENV_PRESERVES_OTHER_THREAD
  • pad_compname_type โ€” (DEPRECATED)

๐ŸŒธ perl 5.33.2

  • pack_cat โ€” (DEPRECATED)

๐ŸŒธ perl 5.32.1

  • GDBMNDBM_H_USES_PROTOTYPES
  • HAS_DBMINIT_PROTO
  • HAS_SOCKADDR_STORAGE
  • I_DBM
  • I_NDBM
  • NDBM_H_USES_PROTOTYPES

๐ŸŒธ perl 5.31.9

  • UNI_DISPLAY_BACKSPACE

๐ŸŒธ perl 5.31.7

  • HASATTRIBUTE_ALWAYS_INLINE
  • HAS_ISLESS
  • HAS_WCRTOMB
  • sv_isa_sv โ€” (marked experimental)
  • WARN_EXPERIMENTAL__ISA

๐ŸŒธ perl 5.31.5

  • isALPHANUMERIC_utf8
  • isALPHA_utf8
  • isASCII_utf8
  • isBLANK_utf8
  • isCNTRL_utf8
  • isDIGIT_utf8
  • isGRAPH_utf8
  • isIDCONT_utf8
  • isIDFIRST_utf8
  • isLOWER_utf8
  • isPRINT_utf8
  • isPSXSPC_utf8
  • isPUNCT_utf8
  • isSPACE_utf8
  • isUPPER_utf8
  • isWORDCHAR_utf8
  • isXDIGIT_utf8
  • toFOLD_utf8
  • toLOWER_utf8
  • toTITLE_utf8
  • toUPPER_utf8

๐ŸŒธ perl 5.31.4

  • cop_fetch_label โ€” (marked experimental)
  • cop_store_label โ€” (marked experimental)
  • sv_2pvbyte_flags โ€” (undocumented)
  • sv_2pvutf8_flags โ€” (undocumented)
  • sv_nolocking โ€” (DEPRECATED)
  • SvPVbyte_nomg
  • SvPVbyte_or_null
  • SvPVbyte_or_null_nomg
  • SvPVutf8_nomg
  • SvPVutf8_or_null
  • SvPVutf8_or_null_nomg
  • sv_utf8_downgrade_flags
  • sv_utf8_downgrade_nomg

๐ŸŒธ perl 5.31.3

  • parse_subsignature โ€” (marked experimental)
  • SANE_ERRSV
  • STORE_LC_NUMERIC_SET_TO_NEEDED_IN
  • WITH_LC_NUMERIC_SET_TO_NEEDED
  • WITH_LC_NUMERIC_SET_TO_NEEDED_IN

๐ŸŒธ perl 5.29.10

  • my_strtod
  • Strtod

๐ŸŒธ perl 5.29.9

  • HAS_TOWLOWER
  • HAS_TOWUPPER
  • I_WCTYPE
  • WARN_EXPERIMENTAL__PRIVATE_USE
  • WARN_EXPERIMENTAL__UNIPROP_WILDCARDS
  • WARN_EXPERIMENTAL__VLB

๐ŸŒธ perl 5.27.11

  • HAS_DUPLOCALE
  • HAS_STRTOD_L

๐ŸŒธ perl 5.27.9

  • PERL_MAGIC_nonelem
  • thread_locale_init โ€” (marked experimental) (undocumented)
  • thread_locale_term โ€” (marked experimental) (undocumented)
  • utf8n_to_uvchr_msgs
  • uvchr_to_utf8_flags_msgs
  • WARN_EXPERIMENTAL__ALPHA_ASSERTIONS

๐ŸŒธ perl 5.27.8

  • HAS_ACCEPT4
  • HAS_DUP3
  • HAS_MKOSTEMP
  • HAS_PIPE2
  • newWHENOP
  • WARN_EXPERIMENTAL__SCRIPT_RUN

๐ŸŒธ perl 5.27.7

  • WARN_SHADOW

๐ŸŒธ perl 5.27.6

  • HAS_MBRLEN
  • HAS_MBRTOWC
  • HAS_NANOSLEEP
  • HAS_STRNLEN
  • HAS_STRTOLD_L
  • HAS_THREAD_SAFE_NL_LANGINFO_L
  • I_WCHAR
  • wrap_keyword_plugin โ€” (marked experimental)

๐ŸŒธ perl 5.27.5

  • HAS_MEMRCHR

perl 5.27.4

okay so we're officially in the dev-release hours now, and here's what perl 5.27.4 handed us:

  • HAS_FCHMODAT
  • HAS_LINKAT
  • HAS_OPENAT
  • HAS_RENAMEAT
  • HAS_UNLINKAT
  • mg_freeext
  • Perl_langinfo
  • sv_rvunweaken

look at all those *AT probes fr fr, the whole at-family showed up together like a girl group ๐Ÿ’…

perl 5.27.3

  • cv_get_call_checker_flags
  • PL_sv_zero
  • sv_string_from_errnum

perl 5.27.2

  • Perl_setlocale
  • UNICODE_DISALLOW_PERL_EXTENDED
  • UNICODE_WARN_PERL_EXTENDED
  • UTF8_DISALLOW_PERL_EXTENDED
  • UTF8_GOT_PERL_EXTENDED
  • UTF8_WARN_PERL_EXTENDED

a whole little PERL_EXTENDED family, adorable โœจ

perl 5.27.1

  • is_utf8_invariant_string_loc

perl 5.25.11

  • DEFAULT_INC_EXCLUDES_DOT

perl 5.25.10

  • op_class

perl 5.25.9

  • isASCII_LC_utf8_safe

perl 5.25.8

  • sv_set_undef

perl 5.25.7

  • CLEAR_ERRSV
  • DOUBLE_HAS_NEGATIVE_ZERO
  • DOUBLE_HAS_SUBNORMALS
  • DOUBLE_STYLE_IEEE
  • LONG_DOUBLE_STYLE_IEEE
  • LONG_DOUBLE_STYLE_IEEE_EXTENDED
  • utf8_hop_back
  • utf8_hop_forward
  • utf8_hop_safe

float nitty-gritty AND the hop family?? a stacked release ngl ๐ŸŒธ

perl 5.25.6

  • DOUBLE_IS_CRAY_SINGLE_64_BIT
  • DOUBLE_IS_IBM_DOUBLE_64_BIT
  • DOUBLE_IS_IBM_SINGLE_32_BIT
  • is_c9strict_utf8_string
  • is_c9strict_utf8_string_loc
  • is_c9strict_utf8_string_loclen
  • is_strict_utf8_string
  • is_strict_utf8_string_loc
  • is_strict_utf8_string_loclen
  • is_utf8_fixed_width_buf_flags
  • is_utf8_fixed_width_buf_loc_flags
  • is_utf8_fixed_width_buf_loclen_flags
  • is_utf8_string_flags
  • is_utf8_string_loc_flags
  • is_utf8_string_loclen_flags
  • SvPVCLEAR
  • sv_setpv_bufsize
  • UTF8_GOT_CONTINUATION
  • UTF8_GOT_EMPTY
  • UTF8_GOT_LONG
  • UTF8_GOT_NONCHAR
  • UTF8_GOT_NON_CONTINUATION
  • UTF8_GOT_OVERFLOW
  • UTF8_GOT_SHORT
  • UTF8_GOT_SUPER
  • UTF8_GOT_SURROGATE
  • utf8n_to_uvchr_error

this is a BIG one bestie, the entire UTF8_GOT_* set ate ๐Ÿ˜ญ๐Ÿ’–

perl 5.25.5

  • isC9_STRICT_UTF8_CHAR
  • isSTRICT_UTF8_CHAR
  • isUTF8_CHAR_flags
  • is_utf8_valid_partial_char
  • is_utf8_valid_partial_char_flags
  • UNICODE_DISALLOW_ILLEGAL_C9_INTERCHANGE
  • UNICODE_WARN_ILLEGAL_C9_INTERCHANGE
  • UTF8_DISALLOW_ILLEGAL_C9_INTERCHANGE
  • UTF8_WARN_ILLEGAL_C9_INTERCHANGE

perl 5.25.4

  • HAS_GAI_STRERROR
  • I_XLOCALE
  • LONG_DOUBLE_IS_VAX_H_FLOAT

perl 5.25.3

  • DOUBLE_HAS_INF
  • DOUBLE_HAS_NAN
  • DOUBLE_IS_VAX_D_FLOAT
  • DOUBLE_IS_VAX_F_FLOAT
  • DOUBLE_IS_VAX_G_FLOAT
  • hv_bucket_ratio (marked experimental)
  • WARN_EXPERIMENTAL__DECLARED_REFS
ngl the (marked experimental) tag is your little warning sticker โ€” the API's still cooking, so handle with care ๐Ÿ’€

perl 5.25.2

  • HAS_STRERROR_L

perl 5.25.1

  • op_parent

perl 5.24.0

  • HAS_MEMMEM

perl 5.23.9

  • HAS_FREELOCALE
  • HAS_NEWLOCALE
  • HAS_USELOCALE

perl 5.23.8

  • clear_defarray (undocumented)
  • HAS_SIGINFO_SI_ADDR
  • HAS_SIGINFO_SI_BAND
  • HAS_SIGINFO_SI_ERRNO
  • HAS_SIGINFO_SI_PID
  • HAS_SIGINFO_SI_STATUS
  • HAS_SIGINFO_SI_UID
  • HAS_SIGINFO_SI_VALUE
  • leave_adjust_stacks (marked experimental) (undocumented)
  • Perl_savetmps (undocumented)

perl 5.23.6

  • LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE
  • LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE
  • LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE
  • LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE
  • UNICODE_DISALLOW_ABOVE_31_BIT
  • UNICODE_WARN_ABOVE_31_BIT

perl 5.23.5

  • HAS_FSTATFS
  • HAS_FSTATVFS
  • HAS_GETMNTENT
  • HAS_HASMNTOPT
  • HAS_STRUCT_STATFS
  • HAS_STRUCT_STATFS_F_FLAGS
  • HAS_USTAT
  • I_MNTENT
  • I_SYS_MOUNT
  • I_SYS_STATFS
  • I_SYS_STATVFS
  • I_SYS_VFS
  • I_USTAT
  • sv_ref

mount-table girlies rise up ๐Ÿซถ

perl 5.23.2

  • INT64_C
  • UINT64_C
  • UTF8_IS_NONCHAR
  • UTF8_IS_SUPER
  • UTF8_IS_SURROGATE

perl 5.23.0

  • DOUBLEINFBYTES
  • DOUBLEMANTBITS
  • DOUBLENANBYTES
  • LONGDBLINFBYTES
  • LONGDBLMANTBITS
  • LONGDBLNANBYTES
  • NVMANTBITS

perl 5.21.10

  • DECLARATION_FOR_LC_NUMERIC_MANIPULATION
  • RESTORE_LC_NUMERIC
  • STORE_LC_NUMERIC_FORCE_TO_UNDERLYING
  • STORE_LC_NUMERIC_SET_TO_NEEDED

perl 5.21.9

  • HAS_LLRINTL
  • HAS_LLROUNDL
  • HAS_LRINTL
  • HAS_LROUNDL
  • WARN_EXPERIMENTAL__BITWISE

perl 5.21.8

  • sv_get_backrefs (marked experimental)
  • WARN_EXPERIMENTAL__CONST_ATTR
  • WARN_EXPERIMENTAL__RE_STRICT

perl 5.21.7

  • HAS_REGCOMP
  • HAS_STAT
  • I_GDBM
  • I_GDBMNDBM
  • newPADNAMELIST (marked experimental)
  • newPADNAMEouter (marked experimental)
  • newPADNAMEpvn (marked experimental)
  • newUNOP_AUX
  • padnamelist_fetch (marked experimental)
  • PadnamelistREFCNT (marked experimental)
  • PadnamelistREFCNT_dec (marked experimental)
  • padnamelist_store (marked experimental)
  • PadnameREFCNT (marked experimental)
  • PadnameREFCNT_dec (marked experimental)
  • PADNAMEt_OUTER

the padname era is upon us and it's giving experimental, every single one ๐Ÿ™ˆ

perl 5.21.6

  • block_end
  • block_start
  • DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
  • DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
  • DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN
  • DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN
  • DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN
  • DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN
  • DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
  • DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE
  • DOUBLE_IS_UNKNOWN_FORMAT
  • DOUBLEKIND
  • HAS_ASINH
  • HAS_ATANH
  • HAS_CBRT
  • HAS_COPYSIGN
  • HAS_ERF
  • HAS_ERFC
  • HAS_EXP2
  • HAS_EXPM1
  • HAS_FDIM
  • HAS_FMA
  • HAS_FMAX
  • HAS_FMIN
  • HAS_HYPOT
  • HAS_ILOGB
  • HAS_ISNORMAL
  • HAS_LGAMMA
  • HAS_LGAMMA_R
  • HAS_LLRINT
  • HAS_LLROUND
  • HAS_LOG1P
  • HAS_LOG2
  • HAS_LOGB
  • HAS_LRINT
  • HAS_LROUND
  • HAS_NAN
  • HAS_NEARBYINT
  • HAS_NEXTAFTER
  • HAS_NEXTTOWARD
  • HAS_REMAINDER
  • HAS_REMQUO
  • HAS_RINT
  • HAS_ROUND
  • HAS_SCALBN
  • HAS_TGAMMA
  • HAS_TRUNC
  • intro_my
  • newDEFSVOP
  • op_convert_list
  • WARN_LOCALE

full math library arc unlocked, no cap ๐ŸŽ€ the HAS_* math probes really said "we're all in this together"

perl 5.21.5

  • cv_name
  • CV_NAME_NOTQUAL
  • HAS_LC_MONETARY_2008
  • newMETHOP
  • newMETHOP_named
  • PERL_MAGIC_debugvar
  • PERL_MAGIC_lvref
  • SV_CATBYTES
  • SV_CATUTF8
  • WARN_EXPERIMENTAL__REFALIASING

perl 5.21.4

  • CALL_CHECKER_REQUIRE_GV
  • cv_set_call_checker_flags
  • grok_infnan
  • HAS_ACOSH
  • HAS_FEGETROUND
  • HAS_FPCLASSIFY
  • HAS_ISFINITE
  • HAS_ISINFL
  • HAS_J0
  • HAS_J0L
  • HAS_TRUNCL
  • I_FENV
  • isinfnan
  • I_STDINT
  • Perl_acos
  • Perl_asin
  • Perl_atan
  • Perl_cosh
  • Perl_log10
  • Perl_sinh
  • Perl_tan
  • Perl_tanh

perl 5.21.3

  • HAS_LDEXPL
  • LONG_DOUBLE_IS_DOUBLE
  • LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN
  • LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN
  • LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
  • LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
  • LONG_DOUBLE_IS_UNKNOWN_FORMAT
  • LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN
  • LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN
  • LONG_DOUBLEKIND
  • Perl_ldexp

perl 5.21.2

  • grok_number_flags
  • op_sibling_splice
  • PERL_SCAN_TRAILING
  • WARN_MISSING
  • WARN_REDUNDANT

perl 5.21.1

  • HAS_BACKTRACE
  • HAS_DLADDR
  • HAS_PTRDIFF_T
  • HAS_WCSCMP
  • HAS_WCSXFRM
  • I_EXECINFO
  • markstack_grow (undocumented)

perl 5.19.10

  • OP_TYPE_IS_OR_WAS

perl 5.19.9

  • WARN_EXPERIMENTAL__SIGNATURES

perl 5.19.7

  • OP_TYPE_IS

perl 5.19.5

  • WARN_EXPERIMENTAL__POSTDEREF

perl 5.19.4

  • IS_SAFE_SYSCALL
  • is_safe_syscall
  • WARN_SYSCALLS

perl 5.19.3

  • PERL_EXIT_ABORT
  • PERL_EXIT_WARN
  • sv_pos_b2u_flags

perl 5.19.2

  • G_METHOD_NAMED

perl 5.19.1

  • toFOLD
  • toFOLD_A
  • toLOWER_A
  • toLOWER_L1
  • toTITLE
  • toTITLE_A
  • toUPPER_A

casing helper supremacy ๐Ÿ’œ

perl 5.18.0

  • hv_rand_set (undocumented)

perl 5.17.11

  • WARN_EXPERIMENTAL__SMARTMATCH

perl 5.17.8

  • isALPHANUMERIC_LC_uvchr
  • isIDCONT_LC_uvchr
  • WARN_EXPERIMENTAL__REGEX_SETS

perl 5.17.7

  • isALNUMC_LC_uvchr
  • isASCII_LC_uvchr
  • isBLANK_LC_uvchr
  • isPSXSPC_LC_uvchr
  • isWORDCHAR_LC_uvchr
  • isXDIGIT_LC_uvchr
  • SvREFCNT_dec_NN
  • SvTRUE_NN
  • SvTRUE_nomg_NN

perl 5.17.6

  • READ_XDIGIT

perl 5.17.5

  • WARN_EXPERIMENTAL__LEXICAL_SUBS

perl 5.17.4

  • GV_SUPER
  • HAS_IP_MREQ_SOURCE
  • newMYSUB (undocumented)
  • newSVpadname (marked experimental)
  • PadARRAY (marked experimental)
  • PadlistARRAY (marked experimental)
  • PadlistMAX (marked experimental)
  • PadlistNAMES (marked experimental)
  • PadlistNAMESARRAY (marked experimental)
  • PadlistNAMESMAX (marked experimental)
  • PadlistREFCNT (marked experimental)
  • PadMAX (marked experimental)
  • PadnameLEN (marked experimental)
  • PadnamelistARRAY (marked experimental)
  • PadnamelistMAX (marked experimental)
  • PadnamePV (marked experimental)
  • PadnameSV (marked experimental)
  • PadnameUTF8 (marked experimental)
  • PL_comppad_name (marked experimental)
  • WARN_EXPERIMENTAL

okay the Pad* takeover here is iconic and also lowkey terrifying, everything's flagged experimental, proceed with your whole chest but read the warnings first bestie ๐Ÿ˜ญ

perl 5.17.2

  • HAS_IP_MREQ
  • PERL_RELOCATABLE_INC
  • sv_copypv_flags
  • sv_copypv_nomg
  • sv_vcatpvfn_flags

perl 5.17.1

  • alloccopstash (marked experimental)
  • CopSTASHPV_set

perl 5.16.0

  • CopLABEL_len
  • CopLABEL_len_flags

perl 5.15.8

  • HAS_IPV6_MREQ
  • HAS_SOCKADDR_IN6
  • is_utf8_char_buf
  • wrap_op_checker

perl 5.15.7

  • HAS_ISBLANK

perl 5.15.6

  • newCONSTSUB_flags

โœจ perl 5.15.4 โœจ

Fresh drops from the mothership, bestie ๐Ÿ’–:

  • gv_autoload_pv (undocumented)
  • gv_autoload_pvn (undocumented)
  • gv_autoload_sv (undocumented)
  • gv_fetchmethod_pv_flags (marked experimental) (undocumented)
  • gv_fetchmethod_pvn_flags (marked experimental) (undocumented)
  • gv_fetchmethod_sv_flags (marked experimental) (undocumented)
  • gv_fetchmeth_pv
  • gv_fetchmeth_pv_autoload
  • gv_fetchmeth_pvn
  • gv_fetchmeth_pvn_autoload
  • gv_fetchmeth_sv
  • gv_fetchmeth_sv_autoload
  • gv_init_pv
  • gv_init_sv
  • HvENAMELEN
  • HvENAMEUTF8
  • HvNAMELEN
  • HvNAMEUTF8
  • newGVgen_flags (undocumented)
  • sv_derived_from_pv
  • sv_derived_from_pvn
  • sv_derived_from_sv
  • sv_does_pv
  • sv_does_pvn
  • sv_does_sv
  • whichsig_pv
  • whichsig_pvn
  • whichsig_sv

๐Ÿ’ซ perl 5.15.3 ๐Ÿ’ซ

  • GV_ADDMG
  • gv_fetchsv_nomg
  • GV_NO_SVGMAGIC
  • I_STDBOOL
  • QUAD_IS___INT64

๐ŸŒธ perl 5.15.2 ๐ŸŒธ

  • ST_INO_SIGN
  • ST_INO_SIZE
  • XS_EXTERNAL (undocumented)
  • XS_INTERNAL (undocumented)

๐Ÿฆ‹ perl 5.15.1 ๐Ÿฆ‹

  • cv_clone
  • pad_add_anon
  • pad_add_name_pv
  • pad_add_name_pvn
  • pad_add_name_pvs
  • pad_add_name_sv
  • pad_alloc (marked experimental)
  • pad_findmy_pv
  • pad_findmy_pvn
  • pad_findmy_pvs
  • pad_findmy_sv
  • pad_new
  • pad_tidy (marked experimental)

๐ŸŽ€ perl 5.13.10 ๐ŸŽ€

  • WARN_NONCHAR
  • WARN_NON_UNICODE
  • WARN_SURROGATE

๐Ÿ’œ perl 5.13.9 ๐Ÿ’œ

  • HAS_SIN6_SCOPE_ID
  • PERL_PV_ESCAPE_NONASCII
  • UNICODE_DISALLOW_ILLEGAL_INTERCHANGE
  • UNICODE_DISALLOW_NONCHAR
  • UNICODE_DISALLOW_SUPER
  • UNICODE_DISALLOW_SURROGATE
  • UNICODE_IS_NONCHAR
  • UNICODE_IS_SUPER
  • UNICODE_WARN_ILLEGAL_INTERCHANGE
  • UNICODE_WARN_NONCHAR
  • UNICODE_WARN_SUPER
  • UNICODE_WARN_SURROGATE
  • UTF8_DISALLOW_ILLEGAL_INTERCHANGE
  • UTF8_DISALLOW_NONCHAR
  • UTF8_DISALLOW_SUPER
  • UTF8_DISALLOW_SURROGATE
  • UTF8_WARN_ILLEGAL_INTERCHANGE
  • UTF8_WARN_NONCHAR
  • UTF8_WARN_SUPER
  • UTF8_WARN_SURROGATE

๐Ÿ“ perl 5.13.8 ๐Ÿ“

  • parse_arithexpr (marked experimental)
  • parse_fullexpr (marked experimental)
  • parse_listexpr (marked experimental)
  • parse_termexpr (marked experimental)

๐Ÿ”ฅ perl 5.13.7 ๐Ÿ”ฅ

okay this one is a whole meal, look at her go:

  • amagic_deref_call (undocumented)
  • bytes_cmp_utf8
  • cophh_2hv (marked experimental)
  • cophh_copy (marked experimental)
  • cophh_delete_pv (marked experimental)
  • cophh_delete_pvn (marked experimental)
  • cophh_delete_pvs (marked experimental)
  • cophh_delete_sv (marked experimental)
  • cophh_fetch_pv (marked experimental)
  • cophh_fetch_pvn (marked experimental)
  • cophh_fetch_pvs (marked experimental)
  • cophh_fetch_sv (marked experimental)
  • cophh_free (marked experimental)
  • COPHH_KEY_UTF8
  • cophh_new_empty (marked experimental)
  • cophh_store_pv (marked experimental)
  • cophh_store_pvn (marked experimental)
  • cophh_store_pvs (marked experimental)
  • cophh_store_sv (marked experimental)
  • cop_hints_2hv
  • cop_hints_fetch_pv
  • cop_hints_fetch_pvn
  • cop_hints_fetch_pvs
  • cop_hints_fetch_sv
  • dirp_dup (undocumented)
  • HvENAME
  • lex_start (marked experimental)
  • newFOROP
  • newWHILEOP
  • OP_CLASS
  • op_lvalue (marked experimental)
  • op_scope (marked experimental)
  • parse_barestmt (marked experimental)
  • parse_block (marked experimental)
  • parse_label (marked experimental)
  • PARSE_OPTIONAL
  • Perl_custom_op_register (undocumented)
  • PL_phase
  • XopDISABLE
  • XopENABLE
  • XopENTRY
  • XopENTRYCUSTOM
  • XopENTRY_set
  • XopFLAGS

๐ŸŒˆ perl 5.13.6 ๐ŸŒˆ

she's giving โœจmaximalistโœจ and we respect it:

  • ck_entersub_args_list
  • ck_entersub_args_proto
  • ck_entersub_args_proto_or_list
  • cv_get_call_checker
  • cv_set_call_checker
  • gv_fetchpvn
  • lex_stuff_pv (marked experimental)
  • LINKLIST
  • load_module_nocontext
  • mg_free_type
  • newSVpv_share
  • op_append_elem
  • op_append_list
  • op_contextualize
  • op_linklist
  • op_prepend_elem
  • parse_stmtseq (marked experimental)
  • PERL_MAGIC_checkcall
  • rv2cv_op_cv
  • RV2CVOPCV_MARK_EARLY
  • RV2CVOPCV_RETURN_NAME_GV
  • save_pushi32ptr (undocumented)
  • save_pushptrptr (undocumented)
  • savesharedpvs
  • savesharedsvpv
  • sv_catpv_flags
  • sv_catpv_nomg
  • sv_catpvs_flags
  • sv_catpvs_mg
  • sv_catpvs_nomg
  • sv_cmp_flags
  • sv_cmp_locale_flags
  • sv_collxfrm_flags
  • sv_eq_flags
  • sv_setpvs_mg
  • sv_setref_pvs

๐Ÿงš perl 5.13.5 ๐Ÿงš

  • hv_copy_hints_hv
  • lex_stuff_pvs (marked experimental)
  • parse_fullstmt (marked experimental)
  • PL_rpeepp
  • save_hints (undocumented)

โญ perl 5.13.4 โญ

  • HAS_STATIC_INLINE
  • PERL_STATIC_INLINE
  • XS_APIVERSION_BOOTCHECK

๐Ÿ’… perl 5.13.3 ๐Ÿ’…

  • Perl_blockhook_register (undocumented)

๐Ÿ‘‘ perl 5.13.2 ๐Ÿ‘‘

  • find_rundefsv
  • foldEQ
  • foldEQ_locale
  • Perl_clone_params_del (undocumented)
  • Perl_clone_params_new (undocumented)
  • Perl_hv_fill (undocumented)
  • sv_dec_nomg
  • sv_dup_inc (undocumented)
  • sv_inc_nomg

๐ŸŒธ perl 5.13.1 ๐ŸŒธ

  • sv_2nv_flags

๐ŸŽ€ perl 5.13.0 ๐ŸŽ€

  • HAS_PRCTL
  • HAS_PRCTL_SET_NAME

๐Ÿ’– perl 5.11.5 ๐Ÿ’–

  • sv_pos_u2b_flags

๐Ÿฆ‹ perl 5.11.4 ๐Ÿฆ‹

  • prescan_version
  • WARN_ILLEGALPROTO

โœจ perl 5.11.2 โœจ

  • CHARBITS
  • ENTER_with_name
  • LEAVE_with_name
  • lex_bufutf8 (marked experimental)
  • lex_discard_to (marked experimental)
  • lex_grow_linestr (marked experimental)
  • LEX_KEEP_PREVIOUS
  • lex_next_chunk (marked experimental)
  • lex_peek_unichar (marked experimental)
  • lex_read_space (marked experimental)
  • lex_read_to (marked experimental)
  • lex_read_unichar (marked experimental)
  • lex_stuff_pvn (marked experimental)
  • lex_stuff_sv (marked experimental)
  • LEX_STUFF_UTF8
  • lex_unstuff (marked experimental)
  • PL_keyword_plugin (marked experimental)
  • toLOWER_LATIN1

๐Ÿ’œ perl 5.11.0 ๐Ÿ’œ

  • gv_add_by_type (undocumented)
  • Gv_AMupdate (undocumented)
  • is_ascii_string
  • is_invariant_string
  • is_utf8_invariant_string
  • PL_opfreehook
  • PUSH_MULTICALL
  • re_dup_guts
  • save_adelete (undocumented)
  • save_aelem_flags (undocumented)
  • save_hdelete (undocumented)
  • save_helem_flags (undocumented)
  • setdefout
  • SV_FORCE_UTF8_UPGRADE
  • SvOOK_offset
  • SVt_REGEXP
  • sv_utf8_upgrade_flags_grow
  • WARN_IMPRECISION

๐Ÿ“ perl 5.10.1 ๐Ÿ“

these _rless siblings are doing a lot, bestie:

  • GMTIME_MAX
  • GMTIME_MIN
  • HASATTRIBUTE_DEPRECATED
  • HAS_BUILTIN_EXPECT
  • HAS_GETADDRINFO
  • HAS_GETNAMEINFO
  • HAS_INETNTOP
  • HAS_INETPTON
  • HAS_TIMEGM
  • HvMROMETA
  • I_SYS_POLL
  • LOCALTIME_MAX
  • LOCALTIME_MIN
  • MRO_GET_PRIVATE_DATA
  • NV_OVERFLOWS_INTEGERS_AT
  • Perl_mro_get_from_name (undocumented)
  • Perl_mro_register (undocumented)
  • Perl_mro_set_mro (undocumented)
  • Perl_mro_set_private_data (undocumented)
  • PERL_USE_DEVEL
  • SAVEFREEOP
  • save_op (undocumented)
  • save_padsv_and_mortalize (undocumented)
  • save_pushptr (undocumented)
  • sv_insert_flags

๐Ÿ”ฅ perl 5.10.0 ๐Ÿ”ฅ

the _r era begins, periodt:

  • HAS_ASCTIME_R
  • HAS_CRYPT_R
  • HAS_CTIME_R
  • HAS_DRAND48_R
  • HAS_GETGRENT_R
  • HAS_GETGRGID_R
  • HAS_GETGRNAM_R
  • HAS_GETHOSTBYADDR_R
  • HAS_GETHOSTBYNAME_R
  • HAS_GETHOSTENT_R
  • HAS_GETLOGIN_R
  • HAS_GETNETBYADDR_R
  • HAS_GETNETBYNAME_R
  • HAS_GETNETENT_R
  • HAS_GETPROTOBYNAME_R
  • HAS_GETPROTOBYNUMBER_R
  • HAS_GETPROTOENT_R
  • HAS_GETPWENT_R
  • HAS_GETPWNAM_R
  • HAS_GETPWUID_R
  • HAS_GETSERVBYNAME_R
  • HAS_GETSERVBYPORT_R
  • HAS_GETSERVENT_R
  • HAS_GETSPNAM_R
  • HAS_GMTIME_R
  • HAS_LOCALTIME_R
  • HAS_OFF64_T
  • HAS_PTHREAD_ATFORK
  • HAS_RANDOM_R
  • HAS_READDIR64_R
  • HAS_READDIR_R
  • HAS_SETRESGID_PROTO
  • HAS_SETRESUID_PROTO
  • HAS_SRAND48_R
  • HAS_SRANDOM_R
  • HAS_STRERROR_R
  • HAS_TMPNAM_R
  • HAS_TTYNAME_R
  • LOCALTIME_R_NEEDS_TZSET
  • START_MY_CXT
  • sv_destroyable
  • USE_ITHREADS
  • UVf (DEPRECATED)
๐Ÿšฉ heads up bestie: UVf is DEPRECATED. It's giving "still here for the old heads" but do not build anything new on it, fr fr.

๐ŸŒˆ perl 5.9.5 ๐ŸŒˆ

  • CopLABEL
  • find_runcv
  • gv_fetchfile_flags
  • HAS_CTERMID
  • HAS_PTHREAD_YIELD
  • HAS_SIGNBIT
  • L_R_TZSET
  • mro_get_linear_isa
  • mro_method_changed_in
  • my_dirfd (undocumented)
  • Perl_av_create_and_push (undocumented)
  • Perl_av_create_and_unshift_one (undocumented)
  • Perl_signbit (marked experimental)
  • pregcomp
  • PRINTF_FORMAT_NULL_OK
  • ptr_table_fetch (undocumented)
  • ptr_table_free (undocumented)
  • ptr_table_new (undocumented)
  • ptr_table_split (undocumented)
  • ptr_table_store (undocumented)
  • re_compile (undocumented)
  • savesharedpvn
  • scan_vstring (undocumented)
  • upg_version

๐ŸŒธ perl 5.9.4 ๐ŸŒธ

  • gv_name_set (undocumented)
  • GV_NOTQUAL
  • HAS_BUILTIN_CHOOSE_EXPR
  • HAS_C99_VARIADIC_MACROS
  • my_vsnprintf
  • newXS_flags (marked experimental) (undocumented)
  • PERL_MAGIC_hints
  • PERL_MAGIC_hintselem
  • Perl_PerlIO_context_layers (undocumented)
  • sv_does
  • sv_nounlocking (DEPRECATED)
  • sv_usepvn_flags
๐Ÿšฉ and sv_nounlocking is DEPRECATED too โ€” it's giving "archival, do not touch", no cap.

perl 5.9.3 ๐Ÿฆ‹

okay so this batch is stacked, bestie:

  • dMULTICALL
  • doref โ€” undocumented, so likeโ€ฆ we know her name and that's it ๐Ÿ™ˆ
  • gv_const_sv
  • GV_NOADD_NOINIT
  • GV_NOEXPAND
  • HASATTRIBUTE_FORMAT
  • HASATTRIBUTE_MALLOC
  • HASATTRIBUTE_NONNULL
  • HASATTRIBUTE_NORETURN
  • HASATTRIBUTE_PURE
  • HASATTRIBUTE_UNUSED
  • HASATTRIBUTE_WARN_UNUSED_RESULT
  • HAS_CLEARENV
  • HAS_FUTIMES
  • HAS_MODFL_PROTO
  • HAS_SNPRINTF
  • HAS_UNSETENV
  • HAS_VSNPRINTF
  • hv_name_set โ€” undocumented
  • is_utf8_string_loclen
  • LIBM_LIB_VERSION
  • MULTICALL
  • newGIVENOP
  • newSVhek
  • Perl_hv_eiter_p โ€” undocumented
  • Perl_hv_eiter_set โ€” undocumented
  • Perl_hv_placeholders_get โ€” undocumented
  • Perl_hv_placeholders_set โ€” undocumented
  • Perl_hv_riter_p โ€” undocumented
  • Perl_hv_riter_set โ€” undocumented
  • PERLIO_FUNCS_DECL โ€” undocumented
  • PERL_MAGIC_arylen_p
  • PERL_MAGIC_rhash
  • PERL_MAGIC_symtab
  • POP_MULTICALL
  • savepvs
  • seed โ€” undocumented
  • share_hek โ€” undocumented
  • sortsv_flags
  • SvPVbytex_nolen
  • SvPV_free
  • SvPVx_const
  • SvPVx_nolen
  • vverify

perl 5.9.2 ๐ŸŒธ

  • find_rundefsvoffset โ€” DEPRECATED, so pls don't build your whole personality on it ๐Ÿ’€
  • op_refcnt_lock โ€” undocumented
  • op_refcnt_unlock โ€” undocumented
  • PERL_MALLOC_WRAP
  • savesvpv
  • SvPVbyte_force
  • vnormal

perl 5.9.1 โœจ

  • hv_clear_placeholders
  • hv_scalar
  • Perl_ceil
  • scan_version
  • sv_2iv_flags
  • sv_2uv_flags

perl 5.9.0 ๐Ÿ’œ

the MY_CXT girlies have entered the chat:

  • _aMY_CXT
  • aMY_CXT
  • aMY_CXT_
  • dMY_CXT
  • hek_dup โ€” undocumented
  • MY_CXT
  • MY_CXT_CLONE
  • MY_CXT_INIT
  • new_version
  • parser_dup โ€” undocumented
  • Perl_my_cxt_init โ€” undocumented
  • _pMY_CXT
  • pMY_CXT
  • pMY_CXT_
  • save_set_svflags โ€” undocumented
  • SVs_PADSTALE
  • vcmp
  • vnumify
  • vstringify

perl 5.8.9 ๐ŸŽ€

  • Perl_hv_assert โ€” undocumented

perl 5.8.8 โญ

  • __ASSERT_
  • rvpv_dup โ€” undocumented

perl 5.8.3 ๐ŸŒˆ

  • SvIsCOW
  • SvIsCOW_shared_hash

perl 5.8.1 ๐Ÿงš

  • CvPADLIST โ€” marked experimental
  • HAS_COPYSIGNL
  • HAS_FAST_STDIO
  • HAS_ILOGBL
  • HAS_PTHREAD_ATTR_SETSCOPE
  • HAS_SCALBNL
  • HAS_TM_TM_GMTOFF
  • IN_PERL_RUNTIME
  • is_utf8_string_loc
  • packlist
  • PL_comppad โ€” marked experimental
  • SAVEBOOL
  • savestack_grow_cnt โ€” undocumented
  • sv_cat_decode
  • sv_setpviv โ€” DEPRECATED
  • sv_setpviv_mg โ€” DEPRECATED
  • SvVOK
  • unpackstring

perl 5.8.0 ๐Ÿ‘‘

okay this version said "let me add ALL the _R_PROTO macros" and honestly, respect the commitment. here they are, in order, no skips:

  • ASCTIME_R_PROTO
  • CRYPT_R_PROTO
  • CTERMID_R_PROTO
  • CTIME_R_PROTO
  • DRAND48_R_PROTO
  • ENDGRENT_R_PROTO
  • ENDHOSTENT_R_PROTO
  • ENDNETENT_R_PROTO
  • ENDPROTOENT_R_PROTO
  • ENDPWENT_R_PROTO
  • ENDSERVENT_R_PROTO
  • GETGRENT_R_PROTO
  • GETGRGID_R_PROTO
  • GETGRNAM_R_PROTO
  • GETHOSTBYADDR_R_PROTO
  • GETHOSTBYNAME_R_PROTO
  • GETHOSTENT_R_PROTO
  • GETLOGIN_R_PROTO
  • GETNETBYADDR_R_PROTO
  • GETNETBYNAME_R_PROTO
  • GETNETENT_R_PROTO
  • GETPROTOBYNAME_R_PROTO
  • GETPROTOBYNUMBER_R_PROTO
  • GETPROTOENT_R_PROTO
  • GETPWENT_R_PROTO
  • GETPWNAM_R_PROTO
  • GETPWUID_R_PROTO
  • GETSERVBYNAME_R_PROTO
  • GETSERVBYPORT_R_PROTO
  • GETSERVENT_R_PROTO
  • GETSPNAM_R_PROTO
  • GMTIME_R_PROTO
  • HAS_TIME
  • HAS_TM_TM_ZONE
  • HeUTF8
  • hv_iternext_flags โ€” marked experimental
  • HV_ITERNEXT_WANTPLACEHOLDERS
  • hv_store_flags โ€” marked experimental, undocumented
  • I_CRYPT
  • LOCALTIME_R_PROTO
  • nothreadhook
  • RANDOM_R_PROTO
  • READDIR64_R_PROTO
  • READDIR_R_PROTO
  • SETGRENT_R_PROTO
  • SETHOSTENT_R_PROTO
  • SETLOCALE_R_PROTO
  • SETNETENT_R_PROTO
  • SETPROTOENT_R_PROTO
  • SETPWENT_R_PROTO
  • SETSERVENT_R_PROTO
  • SRAND48_R_PROTO
  • SRANDOM_R_PROTO
  • STRERROR_R_PROTO
  • TMPNAM_R_PROTO
  • TTYNAME_R_PROTO

perl 5.7.3 ๐Ÿ”ฅ

  • atfork_lock โ€” undocumented
  • atfork_unlock โ€” undocumented
  • custom_op_desc โ€” DEPRECATED
  • custom_op_name โ€” DEPRECATED
  • debstack โ€” undocumented
  • debstackptrs โ€” undocumented
  • foldEQ_utf8
  • fp_dup โ€” undocumented
  • gp_dup โ€” undocumented
  • gv_fetchmeth_autoload
  • HAS_DIRFD
  • HAS_FINITE
  • HAS_FINITEL
  • HAS_ISINF
  • HAS_PROCSELFEXE
  • he_dup โ€” undocumented
  • ibcmp_utf8
  • mg_dup โ€” undocumented
  • my_fork โ€” undocumented
  • my_socketpair โ€” undocumented
  • OP_DESC
  • OP_NAME
  • Perl_deb โ€” undocumented
  • Perl_deb_nocontext โ€” undocumented
  • perl_destruct
  • PERL_EXIT_DESTRUCT_END
  • PerlIO_clearerr
  • PerlIO_close
  • PerlIO_eof
  • PerlIO_error
  • PerlIO_fileno
  • PerlIO_flush
  • PerlIO_get_base
  • PerlIO_get_bufsiz
  • PerlIO_get_cnt
  • PerlIO_get_ptr
  • PERLIO_K_MULTIARG
  • PerlIO_read
  • PerlIO_seek
  • PerlIO_set_cnt
  • PerlIO_setlinebuf
  • PerlIO_set_ptrcnt
  • PerlIO_stderr
  • PerlIO_stdin
  • PerlIO_stdout
  • PerlIO_tell
  • PerlIO_unread โ€” undocumented
  • PerlIO_write
  • Perl_isfinite
  • Perl_isinf
  • PL_peepp
  • PROCSELFEXE_PATH
  • pv_uni_display
  • savesharedpv
  • save_shared_pvref โ€” undocumented
  • si_dup โ€” undocumented
  • sortsv
  • ss_dup โ€” undocumented
  • sv_copypv
  • sv_dup โ€” undocumented
  • SvLOCK
  • sv_magicext
  • sv_nosharing
  • sv_recode_to_utf8
  • SvSHARE
  • sv_uni_display
  • SvUNLOCK
  • UNI_DISPLAY_BACKSLASH
  • UNI_DISPLAY_ISPRINT
  • UNI_DISPLAY_QQ
  • UNI_DISPLAY_REGEX
  • unpack_str โ€” DEPRECATED
  • uvchr_to_utf8_flags
  • vdeb โ€” undocumented

perl 5.7.2 ๐Ÿ’ซ

  • DB_VERSION_MAJOR_CFG
  • DB_VERSION_MINOR_CFG
  • DB_VERSION_PATCH_CFG
  • getcwd_sv
  • HAS_FCHDIR
  • HAS_FLOCK_PROTO
  • HAS_NL_LANGINFO
  • HAS_SOCKATMARK_PROTO
  • HAS_STRFTIME
  • HAS_SYSCALL_PROTO
  • HAS_USLEEP_PROTO
  • I_LANGINFO
  • init_tm โ€” undocumented
  • mini_mktime
  • op_null
  • OSVERS
  • Perl_calloc โ€” undocumented
  • Perl_malloc โ€” undocumented
  • Perl_mfree โ€” undocumented
  • Perl_my_strftime โ€” undocumented
  • Perl_realloc โ€” undocumented
  • PERL_TARGETARCH
  • sv_catpvn_flags
  • sv_catsv_flags
  • sv_utf8_upgrade_flags
  • sv_utf8_upgrade_nomg
  • U_32
  • UNICODE_IS_REPLACEMENT

perl 5.7.1 ๐Ÿ“

this one is a whole buffet, grab a plate:

  • bytes_from_utf8 โ€” marked experimental
  • do_openn โ€” undocumented
  • FCNTL_CAN_LOCK
  • gv_handler โ€” undocumented
  • HAS_FSYNC
  • HAS_GETITIMER
  • HAS_GETPAGESIZE
  • HAS_READV
  • HAS_RECVMSG
  • HAS_SBRK_PROTO
  • HAS_SENDMSG
  • HAS_SETITIMER
  • HAS_SIGPROCMASK
  • HAS_SOCKATMARK
  • HAS_STRTOQ
  • HAS_STRUCT_CMSGHDR
  • HAS_STRUCT_MSGHDR
  • HAS_UALARM
  • HAS_USLEEP
  • HAS_WRITEV
  • isALNUM_LC_uvchr
  • isALPHA_LC_uvchr
  • isCNTRL_LC_uvchr
  • isDIGIT_LC_uvchr
  • isGRAPH_LC_uvchr
  • isIDFIRST_LC_uvchr
  • isLOWER_LC_uvchr
  • is_lvalue_sub โ€” undocumented
  • isPRINT_LC_uvchr
  • isPUNCT_LC_uvchr
  • isSPACE_LC_uvchr
  • isUPPER_LC_uvchr
  • my_popen_list โ€” undocumented
  • NEED_VA_COPY
  • PerlIO_apply_layers
  • PerlIO_binmode
  • PerlIO_debug
  • PERLIO_F_APPEND
  • PERLIO_F_CANREAD
  • PERLIO_F_CANWRITE
  • PERLIO_F_CRLF
  • PERLIO_F_EOF
  • PERLIO_F_ERROR
  • PERLIO_F_FASTGETS
  • PERLIO_F_LINEBUF
  • PERLIO_F_OPEN
  • PERLIO_F_RDBUF
  • PERLIO_F_TEMP
  • PERLIO_F_TRUNCATE
  • PERLIO_F_UNBUF
  • PERLIO_F_UTF8
  • PERLIO_F_WRBUF
  • PERLIO_K_BUFFERED
  • PERLIO_K_CANCRLF
  • PERLIO_K_FASTGETS
  • PERLIO_K_RAW
  • Perl_printf_nocontext โ€” undocumented
  • POPpbytex
  • SAVEMORTALIZESV
  • SIG_SIZE
  • STDIO_PTR_LVAL_SETS_CNT
  • sv_force_normal_flags
  • sv_setref_uv
  • sv_unref_flags
  • sv_utf8_upgrade
  • U32_ALIGNMENT_REQUIRED
  • UNICODE_IS_SURROGATE
  • USE_PERLIO
  • UTF8_CHECK_ONLY
  • utf8_length
  • utf8n_to_uvchr
  • uvchr_to_utf8
  • UVXf

perl 5.7.0 ๐Ÿซถ

  • FILE_base
  • FILE_bufsiz
  • FILE_cnt
  • FILE_ptr
  • PerlIO_fill โ€” undocumented

perl 5.6.1 ๐ŸŽ‰

  • apply_attrs_string โ€” marked experimental, undocumented
  • bytes_to_utf8 โ€” marked experimental
  • gv_efullname4 โ€” undocumented
  • gv_fullname4 โ€” undocumented
  • HAS_FREXPL
  • HAS_ISNAN
  • HAS_ISNANL
  • HAS_MODFL
  • isPSXSPC_LC
  • isUTF8_CHAR
  • is_utf8_string
  • NV_PRESERVES_UV_BITS
  • NVSIZE
  • Perl_isnan
  • PERL_PRIeldbl
  • PERL_SCNfldbl
  • save_generic_pvref โ€” undocumented
  • SvGAMAGIC
  • utf8_to_bytes โ€” marked experimental
  • utf8_to_uvchr โ€” DEPRECATED
  • utf8_to_uvchr_buf

perl 5.6.0 ๐Ÿซถ

okay bestie, hydrate first because this batch is HUGE ๐Ÿ’– like genuinely enormous, the biggest single tier on this whole page. Every single one of these shows up starting here, no cap:

  • av_delete
  • av_exists
  • call_atexit (undocumented)
  • caller_cx
  • CopLINE
  • CPPLAST
  • CPPRUN
  • do_open9 (DEPRECATED) (undocumented)
  • DO_UTF8
  • Drand01
  • dump_all
  • dump_eval (undocumented)
  • dump_form (undocumented)
  • dump_packsubs
  • dump_sub (undocumented)
  • FFLUSH_NULL
  • get_context (undocumented)
  • get_ppaddr (undocumented)
  • Gid_t_f
  • Gid_t_sign
  • Gid_t_size
  • gv_dump (undocumented)
  • HAS_ACCESS
  • HAS_ATOLL
  • HAS_DRAND48_PROTO
  • HAS_EACCESS
  • HAS_FD_SET
  • HAS_FSEEKO
  • HAS_FTELLO
  • HAS_GETCWD
  • HAS_GETHOSTNAME
  • HAS_GETSPNAM
  • HAS_INT64_T
  • HAS_LDBL_DIG
  • HAS_LSEEK_PROTO
  • HAS_MADVISE
  • HAS_MKDTEMP
  • HAS_MKSTEMP
  • HAS_MKSTEMPS
  • HAS_MMAP
  • HAS_MPROTECT
  • HAS_MSYNC
  • HAS_MUNMAP
  • HAS_SQRTL
  • HAS_STRTOLD
  • HAS_STRTOLL
  • HAS_STRTOULL
  • HAS_STRTOUQ
  • HAS_TELLDIR_PROTO
  • I16SIZE
  • I16TYPE
  • I32SIZE
  • I32TYPE
  • I64SIZE
  • I64TYPE
  • I8SIZE
  • I8TYPE
  • I_INTTYPES
  • I_NETINET_TCP
  • I_POLL
  • isALNUMC_LC
  • isALPHA_LC_utf8_safe
  • isALPHANUMERIC_LC_utf8_safe
  • isALPHANUMERIC_utf8_safe
  • isALPHANUMERIC_uvchr
  • isALPHA_utf8_safe
  • isALPHA_uvchr
  • isBLANK_LC_utf8_safe
  • isBLANK_utf8_safe
  • isBLANK_uvchr
  • isCNTRL_LC
  • isCNTRL_LC_utf8_safe
  • isCNTRL_utf8_safe
  • isCNTRL_uvchr
  • isDIGIT_LC_utf8_safe
  • isDIGIT_utf8_safe
  • isDIGIT_uvchr
  • isGRAPH_LC
  • isGRAPH_LC_utf8_safe
  • isGRAPH_utf8_safe
  • isGRAPH_uvchr
  • I_SHADOW
  • isIDCONT_LC_utf8_safe
  • isIDCONT_utf8_safe
  • isIDCONT_uvchr
  • isIDFIRST_LC_utf8_safe
  • isIDFIRST_utf8_safe
  • isIDFIRST_uvchr
  • isLOWER_LC_utf8_safe
  • isLOWER_utf8_safe
  • isLOWER_uvchr
  • isPRINT_LC_utf8_safe
  • isPRINT_utf8_safe
  • isPRINT_uvchr
  • isPSXSPC_LC_utf8_safe
  • isPSXSPC_utf8_safe
  • isPSXSPC_uvchr
  • isPUNCT_LC
  • isPUNCT_LC_utf8_safe
  • isPUNCT_utf8_safe
  • isPUNCT_uvchr
  • isSPACE_LC_utf8_safe
  • isSPACE_utf8_safe
  • isSPACE_uvchr
  • isUPPER_LC_utf8_safe
  • isUPPER_utf8_safe
  • isUPPER_uvchr
  • is_utf8_char (DEPRECATED)
  • isWORDCHAR_LC_utf8_safe
  • isWORDCHAR_utf8_safe
  • isWORDCHAR_uvchr
  • isXDIGIT_LC_utf8_safe
  • isXDIGIT_utf8_safe
  • isXDIGIT_uvchr
  • I_SYSLOG
  • I_SYSUIO
  • I_SYSUTSNAME
  • LSEEKSIZE
  • magic_dump (undocumented)
  • Mmap_t
  • MULTIPLICITY
  • my_atof
  • my_fflush_all (undocumented)
  • newANONATTRSUB (undocumented)
  • newATTRSUB
  • newXS
  • newXSproto
  • Off_t_size
  • op_dump
  • OPpEARLY_CV
  • PERL_ASYNC_CHECK
  • Perl_atan2
  • Perl_cos
  • PERL_EXIT_EXPECTED
  • Perl_exp
  • Perl_floor
  • Perl_fmod
  • Perl_frexp
  • Perl_log
  • Perl_modf
  • perl_parse
  • Perl_pow
  • PERL_PRIfldbl
  • PERL_PRIgldbl
  • PERL_REVISION (DEPRECATED)
  • Perl_sin
  • Perl_sqrt
  • PERL_SYS_INIT3
  • PHOSTNAME
  • PL_check
  • PL_exit_flags
  • PL_runops
  • pmop_dump (undocumented)
  • POPul
  • QUAD_IS_INT
  • QUAD_IS_INT64_T
  • QUAD_IS_LONG
  • QUAD_IS_LONG_LONG
  • QUADKIND
  • Rand_seed_t
  • require_pv
  • safesyscalloc
  • safesysfree
  • safesysmalloc
  • safesysrealloc
  • save_alloc (undocumented)
  • SAVEDESTRUCTOR
  • SAVEDESTRUCTOR_X
  • SAVEI8
  • save_vptr (undocumented)
  • scan_bin
  • SCHED_YIELD
  • seedDrand01
  • set_context (undocumented)
  • SITELIB_STEM
  • Size_t_size
  • Sock_size_t
  • STDIO_PTR_LVALUE
  • STDIO_STREAM_ARRAY
  • Strtol
  • Strtoul
  • sv_2pvutf8
  • sv_force_normal
  • SvIOK_notUV
  • SvIOK_only_UV
  • SvIOK_UV
  • sv_len_utf8
  • sv_len_utf8_nomg
  • SvPOK_only_UTF8
  • sv_pos_b2u
  • sv_pos_u2b
  • SvPVbyte_nolen
  • SvPVbytex
  • SvPVbytex_force
  • SvPVutf8
  • SvPVutf8_force
  • SvPVutf8_nolen
  • SvPVutf8x
  • SvPVutf8x_force
  • sv_rvweaken
  • SvUOK
  • sv_utf8_decode
  • sv_utf8_downgrade
  • sv_utf8_encode
  • SvUTF8_off
  • SvUTF8_on
  • toFOLD_utf8_safe
  • toFOLD_uvchr
  • toLOWER_utf8_safe
  • toLOWER_uvchr
  • toTITLE_utf8_safe
  • toTITLE_uvchr
  • toUPPER_utf8_safe
  • toUPPER_uvchr
  • U16SIZE
  • U16TYPE
  • U32SIZE
  • U32TYPE
  • U64SIZE
  • U64TYPE
  • U8SIZE
  • U8TYPE
  • Uid_t_f
  • Uid_t_sign
  • Uid_t_size
  • Uquad_t
  • USE_64_BIT_ALL
  • USE_64_BIT_INT
  • USE_LARGE_FILES
  • USE_STDIO_BASE
  • USE_STDIO_PTR
  • USE_THREADS
  • UTF8_CHK_SKIP
  • utf8_distance
  • utf8_hop
  • UTF8_MAXBYTES
  • UTF8_SAFE_SKIP
  • UTF8_SKIP
  • UTF8SKIP
  • vcroak
  • vform

likeโ€ฆ look at that list. it's giving macro soup and honestly we respect it ๐Ÿ’… (also yes there's one item in there tagged (marked experimental) energy, but you'll meet it in a sec down in the 5.005 pile โ€” stay with me ๐ŸŽ€)


perl 5.005_03 โœจ

a lil snack-sized tier, seven items, all iconic in their own way:

  • get_vtbl (undocumented)
  • I_PTHREAD
  • POPpx
  • save_generic_svref (undocumented)
  • SELECT_MIN_BITS
  • SvTIED_obj
  • USE_STAT_BLOCKS

tiny. adorable. moving on ๐Ÿฆ‹


perl 5.005 ๐ŸŒธ

this one's the middle child energy โ€” not tiny, not enormous, just vibing with the networking and the debug dumps:

  • debop (undocumented)
  • debprofdump (undocumented)
  • DOUBLESIZE
  • fbm_compile
  • fbm_instr
  • get_op_descs (undocumented)
  • get_op_names (undocumented)
  • GRPASSWD
  • HAS_CSH
  • HAS_ENDGRENT
  • HAS_ENDHOSTENT
  • HAS_ENDNETENT
  • HAS_ENDPROTOENT
  • HAS_ENDPWENT
  • HAS_ENDSERVENT
  • HAS_GETGRENT
  • HAS_GETHOSTBYADDR
  • HAS_GETHOSTBYNAME
  • HAS_GETHOST_PROTOS
  • HAS_GETNETBYADDR
  • HAS_GETNETBYNAME
  • HAS_GETNETENT
  • HAS_GETNET_PROTOS
  • HAS_GETPROTOBYNAME
  • HAS_GETPROTOBYNUMBER
  • HAS_GETPROTOENT
  • HAS_GETPROTO_PROTOS
  • HAS_GETPWENT
  • HAS_GETSERVBYNAME
  • HAS_GETSERVBYPORT
  • HAS_GETSERVENT
  • HAS_GETSERV_PROTOS
  • HAS_LCHOWN
  • HAS_LONG_DOUBLE
  • HAS_LONG_LONG
  • HAS_SCHED_YIELD
  • HAS_SETGRENT
  • HAS_SETHOSTENT
  • HAS_SETNETENT
  • HAS_SETPROTOENT
  • HAS_SETPWENT
  • HAS_SETSERVENT
  • HAS_SETVBUF
  • I_ARPA_INET
  • I_NETDB
  • init_stacks (undocumented)
  • LONG_DOUBLESIZE
  • LONGLONGSIZE
  • mg_length (DEPRECATED)
  • mg_size (undocumented)
  • Netdb_hlen_t
  • Netdb_host_t
  • Netdb_name_t
  • Netdb_net_t
  • newHVhv (undocumented)
  • new_stackinfo (undocumented)
  • Pid_t
  • PL_curpad (marked experimental)
  • PL_in_my_stash (undocumented)
  • PL_maxsysfd
  • PL_modglobal
  • PL_restartop
  • PTRSIZE
  • PWPASSWD
  • regdump (undocumented)
  • sv_peek (undocumented)
  • sv_pvn_nomg (DEPRECATED) (undocumented)
  • SvPVx_force

there's PL_curpad sitting right there (marked experimental) btw โ€” experimental means experimental, bestie, don't build your whole personality on it ๐Ÿ™ˆ


perl 5.004_05 ๐ŸŽ€

five seconds of a tier, nine items, we love a short chapter:

  • do_binmode (DEPRECATED) (undocumented)
  • GV_NOINIT
  • HAS_CHSIZE
  • HAS_GNULIBC
  • PWGECOS
  • save_aelem (undocumented)
  • save_helem (undocumented)
  • USE_SEMCTL_SEMID_DS
  • USE_SEMCTL_SEMUN

perl 5.004 ๐Ÿ’œ

and closing out this part: the 5.004 squad. lots of locale-flavored name checks, some warning/message machinery, and a whole little family of sv_v* formatting friends:

  • ARCHNAME
  • BIN_EXP
  • block_gimme (undocumented)
  • call_list (undocumented)
  • delimcpy
  • GIMME_V
  • gv_autoload4
  • gv_fetchmethod_autoload
  • G_VOID
  • HAS_GETTIMEOFDAY
  • HAS_INET_ATON
  • HAS_SETGROUPS
  • HAS_STRTOD
  • HAS_STRTOL
  • HAS_STRTOUL
  • HePV
  • HeSVKEY_set
  • hv_delayfree_ent (undocumented)
  • hv_free_ent (undocumented)
  • ibcmp_locale
  • IN_LOCALE
  • IN_LOCALE_COMPILETIME
  • IN_LOCALE_RUNTIME
  • isALNUM_LC
  • isALPHA_LC
  • isALPHANUMERIC_LC
  • isDIGIT_LC
  • isIDCONT_LC
  • isIDFIRST_LC
  • isLOWER_LC
  • isPRINT_LC
  • isSPACE_LC
  • isUPPER_LC
  • isWORDCHAR_LC
  • JMPENV_JUMP
  • mess_sv
  • my_failure_exit (undocumented)
  • Perl_ck_warner (undocumented)
  • Perl_ck_warner_d (undocumented)
  • Perl_form (undocumented)
  • Perl_mess (undocumented)
  • Perl_newSVpvf (undocumented)
  • Perl_sv_catpvf (undocumented)
  • Perl_sv_catpvf_mg (undocumented)
  • Perl_sv_setpvf (undocumented)
  • Perl_sv_setpvf_mg (undocumented)
  • Perl_warner (undocumented)
  • Perl_warner_nocontext (undocumented)
  • PL_mess_sv (undocumented)
  • POPu
  • rsignal
  • rsignal_state (undocumented)
  • save_gp
  • SAVEI16
  • SAVESTACK_POS
  • SHORTSIZE
  • sv_cmp_locale
  • sv_derived_from
  • sv_magic_portable (undocumented)
  • SvSetMagicSV
  • SvSetMagicSV_nosteal
  • SvSetSV_nosteal
  • SvTAINTED
  • SvTAINTED_off
  • SvTAINTED_on
  • sv_vcatpvf
  • sv_vcatpvf_mg
  • sv_vcatpvfn
  • sv_vsetpvf
  • sv_vsetpvf_mg
  • sv_vsetpvfn
  • Timeval
  • toLOWER_LC
  • vmess
  • vnewSVpvf
  • vwarner

you made it through the whole archive, bestie ๐Ÿซถ and there's still more page to go โ€” don't wander off ๐Ÿ’–

perl 5.003_07 (or maybe earlier) ๐Ÿ•ฐ๏ธโœจ

okay so bestie, welcome to the ancient scrolls ๐Ÿ“œ. these are the symbols that were already chilling in perl by version 5.003_07 โ€” or maybe even earlier, the historians are still debating that one, iykyk ๐Ÿ’…. some of them are marked (undocumented) and some are (DEPRECATED), so give them the respect (or the side-eye) they deserve ๐Ÿ‘€. no cap, this is a whole lot of legacy goodness. let's get into it, one by one, no skipping:

  • amagic_call (undocumented)
  • ARCHLIB
  • ARCHLIB_EXP
  • ASSUME
  • aTHX
  • aTHX_
  • aTHXR (undocumented)
  • aTHXR_ (undocumented)
  • AvARRAY
  • av_clear
  • av_count
  • av_extend
  • av_fetch
  • av_fill
  • AvFILL
  • av_len
  • av_make
  • av_pop
  • av_push
  • av_shift
  • av_store
  • av_tindex
  • av_top_index
  • av_undef
  • av_unshift
  • ax
  • BIN
  • BOM_UTF8
  • boolSV
  • BYTEORDER
  • call_argv
  • call_method
  • call_pv
  • call_sv
  • C_ARRAY_END
  • C_ARRAY_LENGTH
  • CASTFLAGS
  • CASTNEGFLOAT
  • CAT2
  • cBOOL
  • ckWARN
  • ckWARN2
  • ckWARN2_d
  • ckWARN3
  • ckWARN3_d
  • ckWARN4
  • ckWARN4_d
  • ckWARN_d
  • CLASS
  • CopFILE
  • CopFILEAV
  • CopFILEGV
  • CopFILEGV_set
  • CopFILE_set
  • CopFILESV
  • CopSTASH
  • CopSTASH_eq
  • CopSTASHPV
  • CopSTASH_set
  • Copy
  • CopyD
  • CPERLscope (DEPRECATED)
  • CPPMINUS
  • CPPSTDIN
  • croak_no_modify
  • croak_sv
  • croak_xs_usage
  • CSH
  • cv_const_sv
  • CvDEPTH (undocumented)
  • CvGV
  • CvSTASH
  • cv_undef
  • dAX
  • dAXMARK
  • DB_Hash_t
  • DB_Prefix_t
  • DEFSV
  • DEFSV_set
  • die_sv
  • Direntry_t
  • dITEMS
  • dMARK
  • dMY_CXT_SV
  • dNOOP
  • do_close (undocumented)
  • do_join (undocumented)
  • do_open (undocumented)
  • dORIGMARK
  • do_sprintf (undocumented)
  • dounwind (undocumented)
  • dowantarray (undocumented)
  • dSP
  • dTARGET
  • dTHR
  • dTHX
  • dTHXa
  • dTHXoa
  • dTHXR (undocumented)
  • dUNDERBAR
  • dVAR
  • dXCPT
  • dXSARGS
  • dXSI32
  • dXSTARG (undocumented)
  • END_EXTERN_C
  • ENTER
  • EOF_NONBLOCK
  • ERRSV
  • eval_pv
  • eval_sv
  • EXTEND
  • EXTERN_C
  • filter_add
  • filter_del (undocumented)
  • filter_read
  • FLEXFILENAMES
  • Fpos_t
  • Free_t
  • FREETMPS
  • Gconvert
  • G_DISCARD
  • get_av
  • get_cv
  • get_cvn_flags
  • get_cvs
  • get_hv
  • get_sv
  • G_EVAL
  • Gid_t
  • GIMME (DEPRECATED)
  • G_KEEPERR
  • G_LIST
  • G_METHOD
  • G_NOARGS
  • gp_free (undocumented)
  • gp_ref (undocumented)
  • G_RETHROW
  • grok_bin
  • grok_hex
  • grok_number
  • GROK_NUMERIC_RADIX
  • grok_numeric_radix
  • grok_oct
  • Groups_t
  • G_SCALAR
  • GV_ADD
  • GV_ADDMULTI
  • GV_ADDWARN
  • GvAV
  • gv_AVadd (undocumented)
  • GvCV
  • gv_efullname (DEPRECATED) (undocumented)
  • gv_efullname3 (undocumented)
  • gv_fetchfile
  • gv_fetchmeth
  • gv_fetchmethod
  • gv_fetchpv
  • gv_fetchpvn_flags
  • gv_fetchpvs
  • gv_fetchsv
  • gv_fullname (DEPRECATED) (undocumented)
  • gv_fullname3 (undocumented)
  • GvHV
  • gv_HVadd (undocumented)
  • gv_init
  • gv_init_pvn
  • gv_IOadd (undocumented)
  • gv_stashpv
  • gv_stashpvn
  • gv_stashpvs
  • gv_stashsv
  • GvSV
  • GvSVn
  • HAS_ALARM
  • HAS_CHOWN
  • HAS_CHROOT
  • HAS_CRYPT
  • HAS_CUSERID
  • HAS_DIFFTIME
  • HAS_DLERROR
  • HAS_DUP2
  • HAS_FCHMOD
  • HAS_FCHOWN
  • HAS_FCNTL
  • HAS_FGETPOS
  • HAS_FLOCK
  • HAS_FORK
  • HAS_FPATHCONF
  • HAS_FSETPOS
  • HAS_GETGROUPS
  • HAS_GETHOSTENT
  • HAS_GETLOGIN
  • HAS_GETPGID
  • HAS_GETPGRP
  • HAS_GETPPID
  • HAS_GETPRIORITY
  • HAS_HTONL
  • HAS_HTONS
  • HAS_ISASCII
  • HAS_KILLPG
  • HAS_LINK
  • HAS_LOCALECONV
  • HAS_LOCKF
  • HAS_LSTAT
  • HAS_MBLEN
  • HAS_MBSTOWCS
  • HAS_MBTOWC
  • HAS_MKDIR
  • HAS_MKFIFO
  • HAS_MKTIME
  • HAS_MSG
  • HAS_NICE
  • HAS_NTOHL
  • HAS_NTOHS
  • HAS_OPEN3
  • HAS_PATHCONF
  • HAS_PAUSE
  • HAS_PIPE
  • HAS_POLL
  • HAS_QUAD
  • HAS_READDIR
  • HAS_READLINK
  • HAS_RENAME
  • HAS_REWINDDIR
  • HAS_RMDIR
  • HAS_SEEKDIR
  • HAS_SELECT
  • HAS_SEM
  • HAS_SETEGID
  • HAS_SETEUID
  • HAS_SETLINEBUF
  • HAS_SETLOCALE
  • HAS_SETPGID
  • HAS_SETPGRP
  • HAS_SETPRIORITY
  • HAS_SETREGID
  • HAS_SETRESGID
  • HAS_SETRESUID
  • HAS_SETREUID
  • HAS_SETSID
  • HAS_SHM
  • HAS_SHMAT_PROTOTYPE
  • HAS_SIGACTION
  • HAS_SIGSETJMP
  • HAS_SOCKET
  • HAS_SOCKETPAIR
  • HAS_STRCOLL
  • HAS_STRXFRM
  • HAS_SYMLINK
  • HAS_SYSCALL
  • HAS_SYSCONF
  • HAS_SYS_ERRLIST
  • HAS_SYSTEM
  • HAS_TCGETPGRP
  • HAS_TCSETPGRP
  • HAS_TELLDIR
  • HAS_TIMES
  • HAS_TRUNCATE
  • HAS_TZNAME
  • HAS_UMASK
  • HAS_UNAME
  • HAS_WAIT4
  • HAS_WAITPID
  • HAS_WCSTOMBS
  • HAS_WCTOMB
  • HEf_SVKEY
  • HeHASH
  • HeKEY
  • HeKLEN
  • HeSVKEY
  • HeSVKEY_force
  • HeVAL
  • hv_clear
  • hv_delete
  • hv_delete_ent
  • hv_exists
  • hv_exists_ent
  • hv_fetch
  • hv_fetch_ent
  • hv_fetchs
  • HvFILL
  • hv_iterinit
  • hv_iterkey
  • hv_iterkeysv
  • hv_iternext
  • hv_iternextsv
  • hv_iterval
  • hv_ksplit (undocumented)
  • hv_magic
  • HvNAME
  • HvNAMELEN_get
  • hv_store
  • hv_store_ent
  • hv_stores
  • hv_undef
  • I_32
  • ibcmp
  • I_DIRENT
  • I_DLFCN
  • I_GRP
  • I_LOCALE
  • I_NETINET_IN
  • IN_PERL_COMPILETIME
  • instr
  • INT16_C
  • INT2PTR
  • INT32_C
  • INTMAX_C
  • INTSIZE
  • I_PWD
  • isALNUM
  • isALNUM_A
  • isALNUMC
  • isALNUMC_A
  • isALNUMC_L1
  • isALPHA
  • isALPHA_A
  • isALPHA_L1
  • isALPHANUMERIC
  • isALPHANUMERIC_A
  • isALPHANUMERIC_L1
  • isASCII
  • isASCII_A
  • isASCII_L1
  • isASCII_LC
  • isASCII_utf8_safe
  • isASCII_uvchr
  • isBLANK
  • isBLANK_A
  • isBLANK_L1
  • isBLANK_LC
  • isCNTRL
  • isCNTRL_A
  • isCNTRL_L1
  • isDIGIT
  • isDIGIT_A
  • isDIGIT_L1
  • isGRAPH
  • isGRAPH_A
  • isGRAPH_L1
  • isGV_with_GP
  • isIDCONT
  • isIDCONT_A
  • isIDCONT_L1
  • isIDFIRST
  • isIDFIRST_A
  • isIDFIRST_L1
  • isLOWER
  • isLOWER_A
  • isLOWER_L1
  • IS_NUMBER_GREATER_THAN_UV_MAX
  • IS_NUMBER_INFINITY
  • IS_NUMBER_IN_UV
  • IS_NUMBER_NAN
  • IS_NUMBER_NEG
  • IS_NUMBER_NOT_INT
  • isOCTAL
  • isOCTAL_A
  • isOCTAL_L1
  • isPRINT
  • isPRINT_A
  • isPRINT_L1
  • isPSXSPC
  • isPSXSPC_A
  • isPSXSPC_L1
  • isPUNCT
  • isPUNCT_A
  • isPUNCT_L1
  • isSPACE
  • isSPACE_A
  • isSPACE_L1
  • isUPPER
  • isUPPER_A
  • isUPPER_L1
  • isWORDCHAR
  • isWORDCHAR_A
  • isWORDCHAR_L1
  • isXDIGIT
  • isXDIGIT_A
  • isXDIGIT_L1
  • isXDIGIT_LC
  • I_SYS_DIR
  • I_SYS_FILE
  • I_SYS_IOCTL
  • I_SYS_PARAM
  • I_SYS_RESOURCE
  • I_SYS_SELECT
  • I_SYS_STAT
  • I_SYS_TIME
  • I_SYS_TIMES
  • I_SYS_TYPES
  • I_SYS_UN
  • I_SYS_WAIT
  • items
  • I_TERMIOS
  • I_TIME
  • I_UNISTD
  • I_UTIME
  • I_V
  • IVdf
  • IV_MAX
  • IV_MIN
  • IVSIZE
  • IVTYPE
  • ix
  • LATIN1_TO_NATIVE
  • LEAVE
  • leave_scope (undocumented)
  • LIKELY
  • load_module
  • LOC_SED
  • LONGSIZE
  • looks_like_number
  • Malloc_t
  • MARK
  • MEM_ALIGNBYTES
  • memCHRs
  • memEQ
  • memEQs
  • memNE
  • memNEs
  • memzero
  • mg_clear
  • mg_copy
  • mg_find
  • mg_findext
  • mg_free
  • mg_get
  • mg_magical
  • mg_set
  • Mode_t
  • Move
  • MoveD
  • mPUSHi
  • mPUSHn
  • mPUSHp
  • mPUSHs
  • mPUSHu
  • MUTABLE_AV
  • MUTABLE_CV
  • MUTABLE_GV
  • MUTABLE_HV
  • MUTABLE_IO
  • MUTABLE_PTR
  • MUTABLE_SV
  • mXPUSHi
  • mXPUSHn
  • mXPUSHp
  • mXPUSHs
  • mXPUSHu
  • my_exit
  • my_pclose (undocumented)
  • my_popen (undocumented)
  • my_setenv
  • my_sprintf (DEPRECATED)
  • my_strlcat
  • my_strlcpy
  • my_strnlen
  • NATIVE_TO_LATIN1
  • NATIVE_TO_UNI
  • newANONHASH (undocumented)
  • newANONLIST (undocumented)
  • newANONSUB (undocumented)
  • newASSIGNOP
  • newAV
  • newAVREF (undocumented)
  • newBINOP
  • newCONDOP
  • newCONSTSUB
  • newCVREF (undocumented)
  • newFORM (undocumented)
  • newGVgen (undocumented)
  • newGVOP
  • newGVREF (undocumented)
  • newHV
  • newHVREF (undocumented)
  • newIO (undocumented)
  • newLISTOP
  • newLOGOP
  • newLOOPEX
  • newLOOPOP
  • newNULLLIST
  • newOP
  • newPMOP
  • newPROG (undocumented)
  • newPVOP
  • newRANGE
  • newRV
  • newRV_inc
  • newRV_noinc

phew, that's the whole pre-5.003_07 family, bestie ๐Ÿ˜ฎ๐Ÿ’จ. they're iconic, they're legacy, they're literally the blueprint ๐Ÿ’–. but wait, there's more coming up, so don't touch that dial โœจ.

okay bestie we're deep in the lineup now โ€” no context, no warm-up, just names hitting you back to back like a group chat at 2am ๐Ÿ’– and honestly? every single one of these made the cut, so we're showing them all some love.

  • newSLICEOP โ€” she's here ๐Ÿ’…
  • newSTATEOP โ€” and her โœจ
  • newSUB โ€” iconic, no notes
  • newSV โ€” THE main character of this whole section, ngl ๐Ÿ‘‘
  • newSViv โ€” a classic, we love a classic
  • newSVnv โ€” and her numeric bestie
  • newSVOP โ€” pulled up looking cute
  • newSVpv โ€” oh she's everywhere, you already know her
  • newSVpvn โ€” her sibling, equally valid ๐Ÿซถ
  • newSVpvn_flags โ€” walked in with flags, respect
  • newSVpvn_share โ€” sharing is caring ๐ŸŒธ
  • newSVpvn_utf8 โ€” utf8 girlie ๐ŸŒˆ
  • newSVpvs โ€” pvs queen, periodt ๐Ÿ’…
  • newSVpvs_flags โ€” pvs and flags, double threat โœจ
  • newSVpvs_share โ€” she contains multitudes ๐Ÿฆ‹
  • newSVREF โ€” (undocumented ๐Ÿซฃ) she's shy, we respect her privacy
  • newSVrv โ€” here she is
  • newSVsv โ€” no thoughts, iconic energy
  • newSVsv_flags โ€” same vibe, now with flags
  • newSVsv_nomg โ€” the _nomg girlie, she's got a whole aesthetic
  • newSV_type โ€” she has a type, and she's not sorry
  • newSVuv โ€” unsigned and unbothered ๐Ÿ’œ
  • newUNOP โ€” present and accounted for โœจ

the New* fam walked in together, matching outfits, absolutely ate:

  • Newx โ€” the original โœจ
  • Newxc โ€” she brought a c ๐Ÿ˜Œ
  • Newxz โ€” and she brought a z, thorough queen
  • ninstr โ€” here she is, iconic in her own quiet way ๐Ÿ’–
  • NOOP โ€” doing literally nothing and doing it flawlessly, that's the vibe ๐Ÿ’…
  • NOT_REACHED โ€” (undocumented ๐Ÿซฃ) mysterious, cryptic, kinda slay
  • Nullav โ€” (DEPRECATED ๐Ÿ’€) retired, darling, let her rest
  • Nullch โ€” still here though โœจ
  • Nullcv โ€” (DEPRECATED ๐Ÿ’€) she left the group chat
  • Nullhv โ€” (DEPRECATED ๐Ÿ’€) so did she ๐Ÿ˜ญ
  • Nullsv โ€” keeping the family name alive ๐Ÿซถ
  • NVef โ€” the float one, lowkey elegant
  • NVff โ€” and her friend
  • NVgf โ€” and the third one, a trio ๐ŸŒธ
  • NVTYPE โ€” the type itself, main character ๐Ÿ‘‘
  • Off_t โ€” a whole type, she's built different
  • OPf_KIDS โ€” the flag that says there are kids ๐Ÿงš
  • op_free โ€” she frees, she's generous ๐Ÿ’–
  • OpHAS_SIBLING โ€” sibling energy, real ๐Ÿ’…
  • OpLASTSIB_set โ€” setting the last sibling, iconic
  • OpMAYBESIB_set โ€” maybe, maybe not, she's mysterious ๐Ÿซฃ
  • OpMORESIB_set โ€” more siblings, more chaos
  • OPpENTERSUB_AMPER โ€” long name, big presence โœจ
  • OpSIBLING โ€” the sibling her*self* ๐Ÿ‘‘
  • ORIGMARK โ€” the original mark, the blueprint โœจ
  • OSNAME โ€” she knows where you live ๐Ÿ”ฅ
  • packWARN โ€” warning girlie
  • packWARN2 โ€” warning girlie, level two
  • packWARN3 โ€” level three, she's escalating
  • packWARN4 โ€” level four, final boss energy ๐Ÿ’€

the PERL_ and Perl_ crew, honestly a whole supergroup:

  • PERL_ABS โ€” abs, but make it Perl ๐Ÿ’…
  • perl_alloc โ€” she allocates โœจ
  • PERL_BCDVERSION โ€” (undocumented ๐Ÿซฃ)
  • perl_construct โ€” constructing, as one does
  • Perl_croak โ€” (undocumented ๐Ÿซฃ) and yet so famous
  • Perl_die โ€” (undocumented ๐Ÿซฃ) an icon
  • Perl_eval_pv โ€” (undocumented ๐Ÿซฃ)
  • Perl_eval_sv โ€” (undocumented ๐Ÿซฃ)
  • perl_free โ€” she frees too, generous queen ๐Ÿ’–
  • PERL_HASH โ€” the hash, periodt
  • PERL_INT_MAX โ€” the biggest int, main character ๐Ÿ‘‘
  • PERL_INT_MIN โ€” the smallest, humble but essential
  • PerlIO_canset_cnt โ€” she can set cnt, and she'll tell you
  • PerlIO_exportFILE โ€” exports, cosmopolitan โœจ
  • PerlIO_fast_gets โ€” fast gets, she's speedy ๐Ÿฆ‹
  • PerlIO_fdopen โ€” fds, opened ๐Ÿ’…
  • PerlIO_findFILE โ€” she finds files, a sleuth ๐Ÿ”
  • PerlIO_getc โ€” one character, one vibe
  • PerlIO_getpos โ€” she gets pos ๐ŸŒธ
  • PerlIO_has_base โ€” she has base ๐Ÿ’œ
  • PerlIO_has_cntptr โ€” she has cntptr, lowkey flex
  • PerlIO_importFILE โ€” imports, also cosmopolitan โœจ
  • PerlIO_open โ€” open for business
  • PerlIO_printf โ€” printf, but IO-flavored ๐Ÿ’…
  • PerlIO_putc โ€” putc girlie
  • PerlIO_puts โ€” and her louder sister
  • PerlIO_releaseFILE โ€” she releases, generous again
  • PerlIO_reopen โ€” opening, again, because why not
  • PerlIO_rewind โ€” rewind, iconic behavior โช
  • PerlIO_setpos โ€” set pos, satisfied
  • PerlIO_stdoutf โ€” stdout flavored ๐Ÿ’–
  • PerlIO_ungetc โ€” un-getc, a plot twist
  • PerlIO_vprintf โ€” the v version, very demure
  • PERL_LOADMOD_DENY โ€” deny, she said no ๐Ÿ’…
  • PERL_LOADMOD_IMPORT_OPS โ€” import ops, she's thorough
  • PERL_LOADMOD_NOIMPORT โ€” no import, respectfully โœจ
  • PERL_LONG_MAX โ€” long max, big energy
  • PERL_LONG_MIN โ€” long min, small energy

โœจ okay and now, the โœจmagicโœจ block. this is a whole friend group and we're honoring every single member:

  • PERL_MAGIC_arylen โ€” magic girl ๐Ÿ’…
  • PERL_MAGIC_backref โ€” magic girl โœจ
  • PERL_MAGIC_bm โ€” magic girl ๐Ÿ’–
  • PERL_MAGIC_collxfrm โ€” magic girl ๐ŸŒธ
  • PERL_MAGIC_dbfile โ€” magic girl ๐Ÿฆ‹
  • PERL_MAGIC_dbline โ€” magic girl ๐Ÿ’œ
  • PERL_MAGIC_defelem โ€” magic girl ๐Ÿซถ
  • PERL_MAGIC_env โ€” magic girl ๐ŸŒˆ
  • PERL_MAGIC_envelem โ€” magic girl ๐ŸŽ€
  • PERL_MAGIC_ext โ€” magic girl โญ
  • PERL_MAGIC_fm โ€” magic girl ๐Ÿ“
  • PERL_MAGIC_glob โ€” (undocumented ๐Ÿซฃ) the mysterious one, love that for her
  • PERL_MAGIC_isa โ€” magic girl ๐Ÿ’…
  • PERL_MAGIC_isaelem โ€” magic girl โœจ
  • PERL_MAGIC_mutex โ€” (undocumented ๐Ÿซฃ) locked and mysterious ๐Ÿ”’
  • PERL_MAGIC_nkeys โ€” magic girl ๐Ÿ’–
  • PERL_MAGIC_overload โ€” (undocumented ๐Ÿซฃ) she's doing the most, quietly
  • PERL_MAGIC_overload_elem โ€” (undocumented ๐Ÿซฃ) and her elems too
  • PERL_MAGIC_overload_table โ€” the table though? documented queen ๐Ÿ‘‘
  • PERL_MAGIC_pos โ€” magic girl ๐Ÿฆ‹
  • PERL_MAGIC_qr โ€” magic girl ๐ŸŒˆ
  • PERL_MAGIC_regdata โ€” magic girl โญ
  • PERL_MAGIC_regdatum โ€” magic girl ๐ŸŒธ
  • PERL_MAGIC_regex_global โ€” magic girl ๐Ÿ’œ
  • PERL_MAGIC_shared โ€” magic girl ๐Ÿค
  • PERL_MAGIC_shared_scalar โ€” magic girl ๐Ÿ’–
  • PERL_MAGIC_sig โ€” magic girl ๐Ÿ”ฅ
  • PERL_MAGIC_sigelem โ€” magic girl โœจ
  • PERL_MAGIC_substr โ€” magic girl ๐ŸŽ€
  • PERL_MAGIC_sv โ€” magic girl ๐Ÿ‘‘
  • PERL_MAGIC_taint โ€” magic girl ๐Ÿซถ
  • PERL_MAGIC_tied โ€” magic girl ๐Ÿ’…
  • PERL_MAGIC_tiedelem โ€” magic girl ๐ŸŒˆ
  • PERL_MAGIC_tiedscalar โ€” magic girl ๐Ÿ“
  • PERL_MAGIC_utf8 โ€” magic girl ๐Ÿฆ‹
  • PERL_MAGIC_uvar โ€” magic girl ๐Ÿ’œ
  • PERL_MAGIC_uvar_elem โ€” magic girl โญ
  • PERL_MAGIC_vec โ€” magic girl โœจ
  • PERL_MAGIC_vstring โ€” magic girl ๐ŸŒธ

no notes, the whole magic fam ate ๐Ÿ’…

  • Perl_my_snprintf โ€” (undocumented ๐Ÿซฃ) snprintf but make it hers
  • PERL_PV_ESCAPE_ALL โ€” escape all of it, she's thorough ๐Ÿ’–
  • PERL_PV_ESCAPE_FIRSTCHAR โ€” just the first char, humble
  • PERL_PV_ESCAPE_NOBACKSLASH โ€” no backslashes allowed, boundary queen โœ‹
  • PERL_PV_ESCAPE_NOCLEAR โ€” she does NOT clear, respect
  • PERL_PV_ESCAPE_QUOTE โ€” quoting girlie ๐Ÿ’…
  • PERL_PV_ESCAPE_RE โ€” re flavored โœจ
  • PERL_PV_ESCAPE_UNI โ€” uni flavored ๐ŸŒˆ
  • PERL_PV_ESCAPE_UNI_DETECT โ€” and she detects, smart queen ๐Ÿง 
  • PERL_PV_PRETTY_ELLIPSES โ€” pretty and has ellipsesโ€ฆ ๐ŸŽ€
  • PERL_PV_PRETTY_LTGT โ€” pretty with lt/gt, specific icon
  • PERL_PV_PRETTY_QUOTE โ€” pretty with quotes, final pretty girlie ๐Ÿ’–
  • PERL_QUAD_MAX โ€” quad max, big
  • PERL_QUAD_MIN โ€” quad min, small
  • perl_run โ€” she RUNS ๐Ÿƒโ€โ™€๏ธ
  • PERL_SCAN_ALLOW_UNDERSCORES โ€” underscores allowed, generous โœจ
  • PERL_SCAN_DISALLOW_PREFIX โ€” prefix? not on her watch ๐Ÿ’…
  • PERL_SCAN_GREATER_THAN_UV_MAX โ€” greater than UV_MAX, dramatic and valid
  • PERL_SCAN_SILENT_ILLDIGIT โ€” silent about it, demure ๐Ÿซฃ
  • PERL_SHORT_MAX โ€” short max
  • PERL_SHORT_MIN โ€” short min
  • PERL_SIGNALS_UNSAFE_FLAG โ€” the unsafe flag โš ๏ธ noted, bestie
  • PERL_SUBVERSION โ€” (DEPRECATED ๐Ÿ’€) she's retired, do not text her
  • PERL_SYS_INIT โ€” sys init, starts the whole thing ๐ŸŽฌ
  • PERL_SYS_TERM โ€” sys term, ends the whole thing ๐ŸŽฌ
  • PERL_UCHAR_MAX โ€” biggest uchar, slay
  • PERL_UCHAR_MIN โ€” smallest uchar, also slay
  • PERL_UINT_MAX โ€” biggest uint ๐Ÿ‘‘
  • PERL_UINT_MIN โ€” smallest uint
  • PERL_ULONG_MAX โ€” biggest ulong
  • PERL_ULONG_MIN โ€” smallest ulong
  • PERL_UNUSED_ARG โ€” she silences unused args like a legend ๐Ÿคซ
  • PERL_UNUSED_CONTEXT โ€” same but for context ๐Ÿซถ
  • PERL_UNUSED_DECL โ€” same but for decls โœจ
  • PERL_UNUSED_RESULT โ€” she ignores results with grace ๐Ÿ’…
  • PERL_UNUSED_VAR โ€” and vars, no complaints
  • PERL_UQUAD_MAX โ€” biggest uquad ๐Ÿฆ‹
  • PERL_UQUAD_MIN โ€” smallest uquad
  • PERL_USE_GCC_BRACE_GROUPS โ€” brace groups girlie ๐ŸŒธ
  • PERL_USHORT_MAX โ€” biggest ushort
  • PERL_USHORT_MIN โ€” smallest ushort
  • PERL_VERSION โ€” (DEPRECATED ๐Ÿ’€) iconic name, retired queen, RIP
  • PERL_VERSION_GE โ€” version ge, she compares ๐Ÿ’…
  • PERL_VERSION_GT โ€” version gt, she compares strictly
  • PERL_VERSION_LE โ€” version le, gentle comparison โœจ
  • PERL_VERSION_LT โ€” version lt, strict but sweet
  • Perl_warn โ€” (undocumented ๐Ÿซฃ) warns anyway, legend
  • PL_bufend โ€” (undocumented ๐Ÿซฃ)
  • PL_bufptr โ€” (undocumented ๐Ÿซฃ)
  • PL_compiling โ€” (undocumented ๐Ÿซฃ) she's busy compiling, don't talk to her
  • PL_copline โ€” (undocumented ๐Ÿซฃ)
  • PL_curcop โ€” documented icon โœจ no marker, just vibes
  • PL_curstash โ€” same, unmarked and unbothered ๐Ÿ’…
  • PL_DBsignal โ€” (undocumented ๐Ÿซฃ)
  • PL_debstash โ€” (undocumented ๐Ÿซฃ)
  • PL_defgv โ€” documented, mysterious, main character energy ๐Ÿ‘‘
  • PL_diehook โ€” (undocumented ๐Ÿซฃ) the hook, the legend
  • PL_dirty โ€” (undocumented ๐Ÿซฃ) living up to her name
  • PL_errgv โ€” documented girlie ๐Ÿ’–
  • PL_error_count โ€” (undocumented ๐Ÿซฃ) counting errors quietly
  • PL_expect โ€” (undocumented ๐Ÿซฃ)
  • PL_hexdigit โ€” documented, iconic, hex queen ๐ŸŒˆ
  • PL_hints โ€” (undocumented ๐Ÿซฃ)
  • PL_in_my โ€” (undocumented ๐Ÿซฃ) in her my era
  • PL_laststatval โ€” (undocumented ๐Ÿซฃ)
  • PL_lex_state โ€” (undocumented ๐Ÿซฃ) lexing state of mind
  • PL_lex_stuff โ€” (undocumented ๐Ÿซฃ) stuff. just stuff. iconic ๐Ÿ“
  • PL_linestr โ€” (undocumented ๐Ÿซฃ)
  • PL_na โ€” documented and famous, the little one everybody knows ๐Ÿ’…
  • PL_no_modify โ€” (undocumented ๐Ÿซฃ)
  • PL_parser โ€” documented queen of parsing ๐Ÿ‘‘
  • PL_perldb โ€” (undocumented ๐Ÿซฃ)
  • PL_perl_destruct_level โ€” documented but the name is terrifying, anyway ๐Ÿ’€
  • PL_ppaddr โ€” (undocumented ๐Ÿซฃ)
  • PL_rsfp โ€” (undocumented ๐Ÿซฃ)
  • PL_rsfp_filters โ€” (undocumented ๐Ÿซฃ) and her filters
  • PL_signals โ€” (undocumented ๐Ÿซฃ)
  • PL_stack_base โ€” (undocumented ๐Ÿซฃ) the base of the stack, foundational but shy
  • PL_stack_sp โ€” (undocumented ๐Ÿซฃ) the sp, also shy
  • PL_statcache โ€” (undocumented ๐Ÿซฃ)
  • PL_stdingv โ€” (undocumented ๐Ÿซฃ)
  • PL_sv_arenaroot โ€” (undocumented ๐Ÿซฃ)
  • PL_sv_no โ€” documented and iconic ๐Ÿ’…
  • PL_sv_undef โ€” the undef one, THE undef one ๐Ÿ‘‘
  • PL_sv_yes โ€” and yes, obviously โœจ
  • PL_tainted โ€” (undocumented ๐Ÿซฃ) tainted and thriving
  • PL_tainting โ€” (undocumented ๐Ÿซฃ)
  • PL_tokenbuf โ€” (undocumented ๐Ÿซฃ)
  • PL_Xpv โ€” (undocumented ๐Ÿซฃ) capital X, mysterious

  • Poison โ€” poison girlie ๐Ÿ’€ iconic name, iconic job
  • PoisonFree โ€” poisoned on free
  • PoisonNew โ€” poisoned when new
  • PoisonWith โ€” poisoned with, you choose, custom queen ๐Ÿ’…
  • POPi โ€” pop i, she pops โœจ
  • POPl โ€” pop l, she also pops
  • POPn โ€” pop n, still popping
  • POPp โ€” pop p, popping with style ๐ŸŒธ
  • POPs โ€” pop s, the pop everyone knows best ๐Ÿ’–
  • pop_scope โ€” (undocumented ๐Ÿซฃ)
  • pregexec โ€” documented, regex-running royalty ๐Ÿ‘‘
  • pregfree โ€” (undocumented ๐Ÿซฃ) she frees the preg, quietly
  • PRIVLIB โ€” the privlib, iconic path energy ๐ŸŽ€
  • PRIVLIB_EXP โ€” her _EXP twin, expanded and ready
  • pTHX โ€” the thx king ๐Ÿ‘‘ everybody knows him
  • pTHX_ โ€” same but with a trailing underscore, tiny detail, big difference ๐Ÿ’…
  • PTR2IV โ€” ptr to iv, conversions are her whole personality โœจ
  • PTR2nat โ€” ptr to nat, natural girlie
  • PTR2NV โ€” ptr to nv, nv flavored
  • PTR2ul โ€” ptr to ul, ul flavored
  • PTR2UV โ€” ptr to uv, uv flavored
  • PTRV โ€” (undocumented ๐Ÿซฃ)
  • PUSHi โ€” push i, pushing โœจ
  • PUSHMARK โ€” THE pushmark, legendary ๐Ÿ’…
  • PUSHmortal โ€” pushes a mortal, dramatic but valid ๐Ÿซถ
  • PUSHn โ€” push n
  • PUSHp โ€” push p
  • PUSHs โ€” push s
  • push_scope โ€” (undocumented ๐Ÿซฃ)
  • PUSHu โ€” push u
  • PUTBACK โ€” put it BACK ๐Ÿ”™ iconic command energy
  • pv_display โ€” displays pv, she's a showgirl ๐Ÿ’…
  • pv_escape โ€” escapes pv, slippery queen ๐ŸŒˆ
  • pv_pretty โ€” the prettiest of the three, no competition ๐ŸŽ€
  • Quad_t โ€” a whole type, built different
  • RANDBITS โ€” random bits, chaotic but make it cute ๐ŸŽฒ
  • RD_NODATA โ€” no data, respectfully ๐Ÿ’€
  • Renew โ€” renew girlie, fresh start every time โœจ
  • Renewc โ€” and her c bestie
  • repeatcpy โ€” (undocumented ๐Ÿซฃ) repeating and copying, multitasking queen
  • REPLACEMENT_CHARACTER_UTF8 โ€” the replacement character, dramatic name, dramatic job ๐Ÿฆ‹
  • RETVAL โ€” the return value, main character of every XS function ๐Ÿ‘‘
  • rninstr โ€” the r version of ninstr, reverse girlie โช
  • Safefree โ€” frees safely, she's careful ๐Ÿซถ
  • save_aptr โ€” saves an aptr, a saver ๐Ÿ’–
  • save_ary โ€” saves an array, generous queen
  • SAVE_DEFSV โ€” saves the defsv, important work
  • SAVEDELETE โ€” saves the delete, she remembers so you don't have to ๐Ÿง 
  • SAVEFREEPV โ€” saves free pv, a whole combo meal ๐Ÿ’…
  • SAVEFREESV โ€” saves free sv, same but sv flavored
  • save_hash โ€” saves a hash, the hero we need
  • save_hptr โ€” saves an hptr, pointer saver
  • SAVEI32 โ€” saves an i32, precise โœจ
  • SAVEINT โ€” saves an int, classic
  • save_item โ€” saves an item, she's literally just saving items ๐ŸŒธ
  • SAVEIV โ€” saves an iv, iv girlie
  • save_list โ€” (DEPRECATED ๐Ÿ’€) retired, bestie, don't call her
  • SAVELONG โ€” saves a long, long live her
  • save_nogv โ€” (DEPRECATED ๐Ÿ’€) (undocumented ๐Ÿซฃ) double icon behavior, honestly
  • SAVEPPTR โ€” saves a pptr, pptr savior
  • savepv โ€” saves a pv, she's saving all of them, one by one
  • savepvn โ€” and the n version, keep her name out your mouth
  • save_scalar โ€” saves a scalar, noble work ๐Ÿ’–
  • SAVESPTR โ€” saves an sptr, keep the streak going
  • savestack_grow โ€” (undocumented ๐Ÿซฃ) growing the savestack, literally
  • save_svref โ€” saves an svref, final saver of this block โœจ
  • SAVETMPS โ€” saves tmps, a classic move ๐Ÿ’…
  • scan_hex โ€” scans hex, hex girlie ๐ŸŒˆ
  • scan_oct โ€” scans oct, oct girlie
  • Select_fd_set_t โ€” a whole type, very specific queen
  • Shmat_t โ€” another whole type, mystery girlie ๐Ÿซฃ
  • SH_PATH โ€” the shell path, iconic constant ๐Ÿ’…
  • Sigjmp_buf โ€” a buffer, a sig one, built different
  • Siglongjmp โ€” the long jump but sig flavored ๐Ÿฆ˜
  • Signal_t โ€” a signal type, present and accounted for
  • SIG_NAME โ€” the sig name, she names them ๐ŸŒธ
  • SIG_NUM โ€” the sig number, she numbers them
  • Sigsetjmp โ€” the sig setjmp, completing the jump family
  • SITEARCH โ€” sitearch, path queen ๐ŸŽ€
  • SITEARCH_EXP โ€” and her expanded twin โœจ
  • SITELIB โ€” sitelib, also a path queen
  • SITELIB_EXP โ€” expanded and thriving ๐Ÿ’–
  • Size_t โ€” THE size type, main character ๐Ÿ‘‘
  • SP โ€” the stack pointer, two letters, immense power
  • SPAGAIN โ€” sp, again ๐Ÿ” iconic
  • SSize_t โ€” the signed one, she has layers
  • ST โ€” the stack top, also two letters, also immense
  • START_EXTERN_C โ€” starts the extern C, she begins things โœจ
  • STARTPERL โ€” starts perl, literally starts everything ๐ŸŽฌ
  • start_subparse โ€” (undocumented ๐Ÿซฃ) starts the subparse, behind the scenes queen
  • STDCHAR โ€” the standard char, dependable ๐Ÿ’œ
  • STMT_END โ€” ends the statement, closer energy
  • STMT_START โ€” starts the statement, opener energy, they're a duo ๐Ÿ’ซ
  • strEQ โ€” string eq, she compares politely ๐Ÿ’…
  • strGE โ€” string ge, she's generous with her comparisons
  • strGT โ€” string gt, strict queen
  • STRINGIFY โ€” she stringifies, that's her whole thing โœจ
  • strLE โ€” string le, gentle again
  • strLT โ€” string lt, strict again
  • strNE โ€” string ne, she says not equal, respectfully ๐Ÿซถ
  • strnEQ โ€” string n eq, with a length, precise girlie
  • strnNE โ€” string n ne, also precise, also says no
  • StructCopy โ€” copies structs, structural icon ๐Ÿ›๏ธ
  • STR_WITH_LEN โ€” the classic combo, str plus len, married ๐Ÿ’
  • sv_2cv โ€” sv to cv, converting queen ๐ŸŒธ
  • sv_2io โ€” sv to io, also converting
  • sv_2mortal โ€” sv to mortal, dramatic ๐Ÿ’€ iconic
  • sv_2pvbyte โ€” sv to pvbyte, very specific, very valid
  • SvAMAGIC_off โ€” (undocumented ๐Ÿซฃ) off girlie
  • SvAMAGIC_on โ€” (undocumented ๐Ÿซฃ) on girlie
  • sv_backoff โ€” she backs off, respectfully ๐Ÿšถโ€โ™€๏ธ
  • sv_bless โ€” she blesses, generous queen ๐Ÿ™
  • sv_catpv โ€” concatenates pv, cat girlie ๐Ÿฑ
  • sv_catpv_mg โ€” same but _mg, she has extra layers
  • sv_catpvn โ€” concatenates pvn, the n version
  • sv_catpvn_mg โ€” pvn and mg, double threat
  • sv_catpvn_nomg โ€” nomg this time, she said not today
  • sv_catpvs โ€” concatenates pvs, pvs girlie ๐Ÿ’…
  • sv_catsv โ€” concatenates sv, sv girlie
  • sv_catsv_mg โ€” sv plus mg, again with layers โœจ
  • sv_catsv_nomg โ€” sv, no mg, no notes
  • sv_chop โ€” she chops, brutal but chic ๐Ÿ”ช
  • sv_clear โ€” she clears, immaculate vibe โœจ
  • sv_cmp โ€” she compares, judgmentally but correctly ๐Ÿ’…
  • SV_CONST_RETURN โ€” (undocumented ๐Ÿซฃ) const and mysterious
  • SV_COW_DROP_PV โ€” the COW one, moo, iconic ๐Ÿ„
  • SV_COW_SHARED_HASH_KEYS โ€” (undocumented ๐Ÿซฃ) shared hash keys, cow edition
  • SvCUR โ€” the cur, a legend ๐Ÿ’–
  • SvCUR_set โ€” and her setter, a duo
  • sv_dec โ€” she decrements, going down โฌ‡๏ธ
  • sv_dump โ€” she dumps, for debugging purposes, no judgment
  • SvEND โ€” the end, dramatic โœจ
  • sv_eq โ€” she equals, fair and square
  • SVf โ€” the f format flag, tiny but mighty ๐Ÿ’…
  • SVfARG โ€” the f arg version, tiny but mighty, twice
  • sv_free โ€” she frees, again, generous ๐Ÿ’–
  • SVf_UTF8 โ€” the utf8 f flag, ๐ŸŒˆ girlie
  • SvGETMAGIC โ€” gets the magic, magician behavior ๐ŸŽฉ
  • sv_gets โ€” she gets, plain and simple
  • SV_GMAGIC โ€” the g magic flag, magical ๐Ÿ’ซ
  • SvGROW โ€” she GROWS ๐Ÿ“ˆ growth mindset queen
  • SV_HAS_TRAILING_NUL โ€” has a trailing nul, and she's not ashamed ๐Ÿซถ
  • SV_IMMEDIATE_UNREF โ€” immediate unref, no waiting, she's direct ๐Ÿ’…
  • sv_inc โ€” she increments, going up โฌ†๏ธ
  • sv_insert โ€” she inserts, respectfully
  • SvIOK โ€” iok girlie, checking โœ”๏ธ
  • SvIOK_off โ€” iok off
  • SvIOK_on โ€” iok on
  • SvIOK_only โ€” iok only, exclusive ๐Ÿ’…
  • SvIOKp โ€” iokp, the private-ish one ๐Ÿซฃ
  • sv_isa โ€” she isa, identifying queens ๐Ÿ”
  • sv_isobject โ€” she asks if it's an object, valid question
  • SvIV โ€” THE iv accessor, a whole legend ๐Ÿ‘‘
  • SvIV_nomg โ€” no mg, just iv
  • SvIV_set โ€” sets the iv, setter queen
  • SvIVX โ€” the big X version, mysterious and powerful
  • SvIVx โ€” the little x version, lowercase chaos
  • sv_len โ€” the length, she measures ๐Ÿ“
  • SvLEN โ€” the LEN, capital, authoritative
  • SvLEN_set โ€” sets the LEN, definitive
  • sv_magic โ€” she does magic, literally โœจ
  • SvMAGIC_set โ€” sets the magic, magician's assistant ๐ŸŽฉ
  • sv_mortalcopy โ€” makes a mortal copy, dramatic but necessary ๐Ÿ’€
  • sv_mortalcopy_flags โ€” same, with flags, extra
  • SV_MUTABLE_RETURN โ€” (undocumented ๐Ÿซฃ) mutable and mysterious
  • sv_newmortal โ€” makes a new mortal, she's spawning ๐Ÿ’ซ
  • SvNIOK โ€” the niok checker, a triple threat ๐Ÿ’…
  • SvNIOK_off โ€” niok off
  • SvNIOKp โ€” niokp, private vibes
  • SvNOK โ€” nok girlie โœจ
  • SvNOK_off โ€” nok off
  • SvNOK_on โ€” nok on
  • SvNOK_only โ€” nok only, exclusive again ๐Ÿ’…
  • SvNOKp โ€” nokp, private again
  • SV_NOSTEAL โ€” no steal, hands off bestie โœ‹
  • SvNV โ€” the nv accessor, legendary โœจ
  • SvNV_nomg โ€” no mg, just nv
  • SvNV_set โ€” sets the nv, setter girlie
  • SvNVX โ€” big X again, so mysterious
  • SvNVx โ€” little x again, so lowercase
  • SvOK โ€” ok? she's checking ๐Ÿ’–
  • SvOOK โ€” ook, the other check, equally valid
  • SvOOK_off โ€” ook off
  • SvPOK โ€” pok girlie, checking the p ๐Ÿ’…
  • SvPOK_off โ€” pok off
  • SvPOK_on โ€” pok on
  • SvPOK_only โ€” pok only, exclusive
  • SvPOKp โ€” pokp, private
  • SvPV โ€” the pv accessor, an absolute legend ๐Ÿ‘‘
  • SvPVbyte โ€” pv, byte flavored ๐ŸŒธ
  • SvPV_const โ€” pv, const flavored, nothing changes
  • SvPV_flags โ€” pv with flags โœจ
  • SvPV_flags_const โ€” flags and const, double wrapped
  • SvPV_flags_mutable โ€” flags and mutable, she changes
  • SvPV_force โ€” pv FORCED ๐Ÿ’ช
  • SvPV_force_flags โ€” forced, with flags
  • SvPV_force_flags_mutable โ€” forced, flagged, and mutable, the full set
  • SvPV_force_flags_nolen โ€” forced, flagged, no len, trimmed down
  • SvPV_force_mutable โ€” forced and mutable, a combo
  • SvPV_force_nolen โ€” forced, no len
  • SvPV_force_nomg โ€” forced, no mg
  • SvPV_force_nomg_nolen โ€” forced, no mg, no len, absolutely stripped back
  • SvPV_mutable โ€” mutable pv, she's flexible
  • sv_pvn_force_flags โ€” the function form, flags included
  • SvPV_nolen โ€” pv, no len, classic
  • SvPV_nolen_const โ€” no len and const
  • SvPV_nomg โ€” pv, no mg
  • SvPV_nomg_const โ€” no mg, const
  • SvPV_nomg_const_nolen โ€” no mg, const, no len, the whole trio
  • SvPV_nomg_nolen โ€” no mg, no len
  • SvPV_renew โ€” pv renewed, fresh start โœจ
  • SvPV_set โ€” sets the pv, setter girlie
  • SvPVX โ€” big X pv, powerful and mysterious ๐Ÿ’œ
  • SvPVx โ€” little x pv, lowercase and cute
  • SvPVX_const โ€” big X plus const, unchangeable power
  • SvPVX_mutable โ€” big X plus mutable, changeable power
  • SvPVx_nolen_const โ€” little x, no len, const, the full stack ๐Ÿ“
  • SvPVXx โ€” two X's, she's twice as mysterious, we don't even ask ๐Ÿซฃ
  • SvREADONLY โ€” READ ONLY, do not touch, she said what she said ๐Ÿšซโœจ

okay and we are still not done, the list keeps going, she does not stop, she's a marathon girlie and honestly? respect ๐Ÿซถ

okay bestie, we're still deep in the backported API tea โ˜•๏ธ โ€” don't worry, we're almost through it, and every single name matters. here's the rest of the list, no cap:

  • SvREADONLY_off
  • SvREADONLY_on
  • SvREFCNT
  • SvREFCNT_dec
  • SvREFCNT_inc
  • SvREFCNT_inc_NN
  • SvREFCNT_inc_simple
  • SvREFCNT_inc_simple_NN
  • SvREFCNT_inc_simple_void
  • SvREFCNT_inc_simple_void_NN
  • SvREFCNT_inc_void
  • SvREFCNT_inc_void_NN
  • sv_reftype
  • sv_replace
  • sv_report_used
  • sv_reset
  • SvROK
  • SvROK_off
  • SvROK_on
  • SvRV
  • SvRV_set
  • SvRX
  • SvRXOK
  • sv_setiv
  • sv_setiv_mg
  • SvSETMAGIC
  • sv_setnv
  • sv_setnv_mg
  • sv_setpv
  • sv_setpv_mg
  • sv_setpvn
  • sv_setpvn_mg
  • sv_setpvs
  • sv_setref_iv
  • sv_setref_nv
  • sv_setref_pv
  • sv_setref_pvn
  • sv_setsv
  • SvSetSV
  • sv_setsv_flags
  • sv_setsv_mg
  • sv_setsv_nomg
  • sv_setuv
  • sv_setuv_mg
  • SvSHARED_HASH
  • SV_SMAGIC
  • SvSTASH
  • SvSTASH_set
  • SVs_TEMP
  • SvTAINT
  • SVt_IV
  • SVt_NULL
  • SVt_NV
  • SVt_PV
  • SVt_PVAV
  • SVt_PVCV
  • SVt_PVFM
  • SVt_PVGV
  • SVt_PVHV
  • SVt_PVIO
  • SVt_PVIV
  • SVt_PVLV
  • SVt_PVMG
  • SVt_PVNV
  • SvTRUE
  • SvTRUE_nomg
  • SvTRUEx
  • SvTYPE
  • svtype (undocumented)
  • sv_unmagic
  • sv_unmagicext
  • sv_unref
  • sv_upgrade
  • SvUPGRADE
  • sv_usepvn
  • sv_usepvn_mg
  • SvUTF8
  • SV_UTF8_NO_ENCODING (DEPRECATED)
  • SvUV
  • SvUV_nomg
  • SvUV_set
  • SvUVX
  • SvUVx
  • SvUVXx (DEPRECATED)
  • SvVSTRING_mg
  • switch_to_global_locale
  • sync_locale
  • taint_env (undocumented)
  • taint_proper (undocumented)
  • TARG
  • THIS
  • Time_t
  • toLOWER
  • toUPPER
  • Uid_t
  • UINT16_C
  • UINT32_C
  • UINTMAX_C
  • UNDERBAR
  • UNICODE_REPLACEMENT
  • UNI_TO_NATIVE
  • UNLIKELY
  • unsharepvn (undocumented)
  • USE_DYNAMIC_LOADING
  • UTF8f
  • UTF8fARG
  • UTF8_IS_INVARIANT
  • UTF8_MAXBYTES_CASE
  • U_V
  • UVCHR_IS_INVARIANT
  • UVCHR_SKIP
  • UV_MAX
  • UV_MIN
  • UVof
  • UVSIZE
  • UVTYPE
  • UVuf
  • UVxf
  • VAL_EAGAIN
  • VAL_O_NONBLOCK
  • vload_module
  • vwarn
  • WARN_ALL
  • WARN_AMBIGUOUS
  • WARN_ASSERTIONS (undocumented)
  • WARN_BAREWORD
  • WARN_CLOSED
  • WARN_CLOSURE
  • WARN_DEBUGGING
  • WARN_DEPRECATED
  • WARN_DIGIT
  • WARN_EXEC
  • WARN_EXITING
  • WARN_GLOB
  • WARN_INPLACE
  • WARN_INTERNAL
  • WARN_IO
  • WARN_LAYER
  • WARN_MALLOC
  • WARN_MISC
  • WARN_NEWLINE
  • WARN_NUMERIC
  • WARN_ONCE
  • WARN_OVERFLOW
  • WARN_PACK
  • WARN_PARENTHESIS
  • WARN_PIPE
  • WARN_PORTABLE
  • WARN_PRECEDENCE
  • WARN_PRINTF
  • WARN_PROTOTYPE
  • WARN_QW
  • WARN_RECURSION
  • WARN_REDEFINE
  • WARN_REGEXP
  • WARN_RESERVED
  • WARN_SEMICOLON
  • WARN_SEVERE
  • WARN_SIGNAL
  • WARN_SUBSTR
  • warn_sv
  • WARN_SYNTAX
  • WARN_TAINT
  • WARN_THREADS
  • WARN_UNINITIALIZED
  • WARN_UNOPENED
  • WARN_UNPACK
  • WARN_UNTIE
  • WARN_UTF8
  • WARN_VOID
  • whichsig
  • WIDEST_UTYPE (undocumented)
  • XCPT_CATCH
  • XCPT_RETHROW
  • XCPT_TRY_END
  • XCPT_TRY_START
  • XPUSHi
  • XPUSHmortal
  • XPUSHn
  • XPUSHp
  • XPUSHs
  • XPUSHu
  • XS (undocumented)
  • XSprePUSH (undocumented)
  • XSPROTO (undocumented)
  • XSRETURN
  • XSRETURN_EMPTY
  • XSRETURN_IV
  • XSRETURN_NO
  • XSRETURN_NV
  • XSRETURN_PV
  • XSRETURN_UNDEF
  • XSRETURN_UV
  • XSRETURN_YES
  • XST_mIV
  • XST_mNO
  • XST_mNV
  • XST_mPV
  • XST_mUNDEF
  • XST_mUV
  • XST_mYES
  • XS_VERSION
  • XS_VERSION_BOOTCHECK
  • Zero
  • ZeroD

๐Ÿ‘ป Backported version unknown ๐Ÿ‘ป

these ones? we don't even know which version they came from, bestie. spooky. but here they are:

  • LC_NUMERIC_LOCK (undocumented)
  • LC_NUMERIC_UNLOCK (undocumented)
  • LOCK_NUMERIC_STANDARD (undocumented)
  • NUM2PTR (undocumented)
  • PERLIO_FUNCS_CAST (undocumented)
  • PERLIO_FUNCS_DECL (undocumented)
  • PERL_STACK_OFFSET_DEFINED (undocumented)
  • PERL_STACK_REALIGN (undocumented)
  • Stack_off_t (undocumented)
  • Stack_off_t_MAX (undocumented)
  • STORE_LC_NUMERIC_SET_STANDARD (undocumented)
  • STORE_NUMERIC_SET_STANDARD (undocumented)
  • SvPV_flags_const_nolen (undocumented)
  • SvVSTRING (undocumented)
  • UNLOCK_NUMERIC_STANDARD (undocumented)
  • XSPROTO (undocumented)

๐Ÿ› BUGS ๐Ÿ›

if you find any bugs, or Devel::PPPort just won't build on your system, or any of its tests are acting up โ€” please send a bug report to https://github.com/Dual-Life/Devel-PPPort/issues/new. we appreciate you, fr fr.

๐Ÿ‘‘ AUTHORS ๐Ÿ‘‘

  • Version 1.x of Devel::PPPort was written by Kenneth Albanowski.
  • Version 2.x was ported to the Perl core by Paul Marquess.
  • Version 3.x was ported back to CPAN by Marcus Holland-Moritz.
  • Versions >= 3.22 are maintained by perl5 porters.
  • Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
  • Copyright (C) 2018-2020, The perl5 porters.
  • Version 2.x, Copyright (C) 2001, Paul Marquess.
  • Version 1.x, Copyright (C) 1999, Kenneth Albanowski.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

๐Ÿ‘€ SEE ALSO ๐Ÿ‘€

See h2xs, ppport.h.


and that's the whole tea, bestie ๐Ÿ’– this was perl v5.44.0, dated 2026-10-17, from Devel::PPPort(3perl). stay iconic, keep slaying those XS projects ๐Ÿ’…โœจ๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from
  • arch rolling: perl 5.44.0-1 ยท Artistic-1.0-Perl AND GPL-1.0-or-later
  • ๐Ÿ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms