NAME
Devel::PPPort - Perl/Pollution/Portability
SYNOPSIS
1 2 3 4 5 6 | 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' ); |
DESCRIPTION
Perl's API has changed over time, gaining new features, new functions, increasing its flexibility, and reducing the impact on the C namespace environment (reduced pollution). The header file written by this module, typically ppport.h, attempts to bring some of the newer Perl API features to older versions of Perl, so that you can worry less about keeping track of old releases, but users can still reap the benefit.
Devel::PPPort
contains two functions, WriteFile
and GetFileContents
. WriteFile
's only purpose is to write the ppport.h C header file. This file contains a series of macros and, if explicitly requested, functions that allow XS modules to be built using older versions of Perl. Currently, Perl versions from 5.003 to 5.20 are supported.
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 that your code will work with the widest range of Perl interpreters possible, without significant additional work.
You should attempt 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! By adapting to it now, you'll gain compatibility and a sense of having done the electronic ecology some good.
How to use ppport.h
Don't direct the users of your module to download Devel::PPPort
. They are most probably no XS writers. Also, don't make ppport.h optional. Rather, 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, and distribute the header along with your module.
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:
1 | perl ppport.h [options] [files] |
It also has embedded documentation, so you can use
1 | 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.
COMPATIBILITY
ppport.h supports Perl versions from 5.003 to 5.20 in threaded and non-threaded configurations.
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 is not available in older Perl releases:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 | _aMY_CXT _pMY_CXT aMY_CXT aMY_CXT_ aTHX aTHX_ aTHXR aTHXR_ AvFILLp boolSV call_argv call_method call_pv call_sv caller_cx ckWARN CopFILE CopFILE_set CopFILEAV CopFILEGV CopFILEGV_set CopFILESV CopSTASH CopSTASH_eq CopSTASH_set CopSTASHPV CopSTASHPV_set CopyD CPERLscope dAX dAXMARK DEFSV DEFSV_set dITEMS dMY_CXT dMY_CXT_SV dNOOP dTHR dTHX dTHXa dTHXoa dTHXR dUNDERBAR dVAR dXCPT dXSTARG END_EXTERN_C ERRSV eval_pv eval_sv EXTERN_C G_METHOD get_av get_cv get_cvn_flags get_cvs get_hv get_sv grok_bin grok_hex grok_number GROK_NUMERIC_RADIX grok_numeric_radix grok_oct gv_fetchpvn_flags gv_fetchpvs gv_fetchsv gv_stashpvn gv_stashpvs GvSVn HEf_SVKEY HeUTF8 hv_fetchs hv_stores HvNAME_get HvNAMELEN_get IN_LOCALE IN_LOCALE_COMPILETIME IN_LOCALE_RUNTIME IN_PERL_COMPILETIME INT2PTR IS_NUMBER_GREATER_THAN_UV_MAX IS_NUMBER_IN_UV IS_NUMBER_INFINITY IS_NUMBER_NAN IS_NUMBER_NEG IS_NUMBER_NOT_INT isALNUMC isASCII isBLANK isCNTRL isGRAPH isGV_with_GP isPRINT isPSXSPC isPUNCT isXDIGIT IVdf IVSIZE IVTYPE load_module memEQ memEQs memNE memNEs mg_findext MoveD mPUSHi mPUSHn mPUSHp mPUSHs mPUSHu 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 newCONSTSUB newRV_inc newRV_noinc newSV_type newSVpvn newSVpvn_flags newSVpvn_share newSVpvn_utf8 newSVpvs newSVpvs_flags newSVpvs_share newSVuv Newx Newxc Newxz NOOP NUM2PTR NVef NVff NVgf NVTYPE packWARN PERL_ABS PERL_BCDVERSION PERL_GCC_BRACE_GROUPS_FORBIDDEN PERL_HASH PERL_INT_MAX PERL_INT_MIN 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 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_REVISION 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_SUBVERSION 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_VAR PERL_UQUAD_MAX PERL_UQUAD_MIN PERL_USE_GCC_BRACE_GROUPS PERL_USHORT_MAX PERL_USHORT_MIN PERL_VERSION Perl_warner Perl_warner_nocontext PERLIO_FUNCS_CAST PERLIO_FUNCS_DECL 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_na PL_no_modify PL_parser PL_perl_destruct_level PL_perldb 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 pMY_CXT pMY_CXT_ Poison PoisonFree PoisonNew PoisonWith pTHX pTHX_ PTR2IV PTR2nat PTR2NV PTR2ul PTR2UV PTRV PUSHmortal PUSHu pv_display pv_escape pv_pretty SAVE_DEFSV START_EXTERN_C START_MY_CXT STMT_END STMT_START STR_WITH_LEN sv_2pv_flags sv_2pv_nolen sv_2pvbyte sv_2pvbyte_nolen sv_2uv sv_catpv_mg sv_catpvf_mg sv_catpvf_mg_nocontext 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 SV_GMAGIC SV_HAS_TRAILING_NUL SV_IMMEDIATE_UNREF sv_magic_portable SV_MUTABLE_RETURN SV_NOSTEAL sv_pvn_force_flags sv_pvn_nomg sv_setiv_mg sv_setnv_mg sv_setpv_mg sv_setpvf_mg sv_setpvf_mg_nocontext sv_setpvn_mg sv_setpvs sv_setsv_mg sv_setsv_nomg sv_setuv sv_setuv_mg SV_SMAGIC sv_unmagicext sv_usepvn_mg SV_UTF8_NO_ENCODING sv_uv sv_vcatpvf sv_vcatpvf_mg sv_vsetpvf sv_vsetpvf_mg SVf SVf_UTF8 SVfARG SvGETMAGIC SvIV_nomg SvMAGIC_set 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 SvPV_nolen SvPV_nolen_const SvPV_nomg SvPV_nomg_const SvPV_nomg_const_nolen SvPV_nomg_nolen SvPV_renew SvPVbyte SvPVX_const SvPVX_mutable 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 SvSHARED_HASH SvSTASH_set SvUOK SvUV SvUV_nomg SvUV_set SvUVX SvUVx SvUVXx SvVSTRING_mg UNDERBAR UTF8_MAXBYTES UVof UVSIZE UVTYPE UVuf UVXf UVxf vload_module vnewSVpvf WARN_ALL WARN_AMBIGUOUS WARN_ASSERTIONS 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_SYNTAX WARN_TAINT WARN_THREADS WARN_UNINITIALIZED WARN_UNOPENED WARN_UNPACK WARN_UNTIE WARN_UTF8 WARN_VOID warner WIDEST_UTYPE XCPT_CATCH XCPT_RETHROW XCPT_TRY_END XCPT_TRY_START XPUSHmortal XPUSHu XSprePUSH XSPROTO XSRETURN XSRETURN_UV XST_mUV ZeroD |
Perl API not supported by ppport.h
There is still a big part of the API not supported by ppport.h. Either because it doesn't make sense to back-port that part of the API, or simply because it hasn't been implemented yet. Patches welcome!
Here's a list of the currently unsupported API, and also the version of Perl below which it is unsupported:
-
perl 5.21.8 123456789101112131415161718192021222324252627282930313233343536373839404142
BhkDISABLE
BhkENABLE
BhkENTRY_set
MULTICALL
PERL_SYS_TERM
POP_MULTICALL
PUSH_MULTICALL
PadARRAY
PadMAX
PadlistARRAY
PadlistMAX
PadlistNAMES
PadlistNAMESARRAY
PadlistNAMESMAX
PadnameLEN
PadnamePV
PadnameREFCNT
PadnameREFCNT_dec
PadnameSV
PadnamelistARRAY
PadnamelistMAX
PadnamelistREFCNT
PadnamelistREFCNT_dec
XS_APIVERSION_BOOTCHECK
XS_EXTERNAL
XS_INTERNAL
XS_VERSION_BOOTCHECK
XopDISABLE
XopENABLE
XopENTRY
XopENTRYCUSTOM
XopENTRY_set
cophh_new_empty
my_lstat
my_stat
reentrant_free
reentrant_init
reentrant_retry
reentrant_size
ref
sv_get_backrefs
sv_setref_pvs
-
perl 5.21.7 1234567891011
OpHAS_SIBLING
OpSIBLING
OpSIBLING_set
PadnameUTF8
is_invariant_string
newPADNAMELIST
newPADNAMEouter
newPADNAMEpvn
newUNOP_AUX
padnamelist_fetch
padnamelist_store
-
perl 5.21.6 12
newDEFSVOP
op_convert_list
-
perl 5.21.5 123
cv_name
newMETHOP
newMETHOP_named
-
perl 5.21.4 1234
cv_set_call_checker_flags
grok_infnan
isinfnan
sync_locale
-
perl 5.21.2 123
grok_number_flags
op_parent
op_sibling_splice
-
perl 5.21.1 1234567891011
_is_in_locale_category
_is_utf8_char_slow
_is_utf8_idcont
_is_utf8_idstart
_is_utf8_xidcont
_is_utf8_xidstart
isALNUM_lazy
isIDFIRST_lazy
isUTF8_CHAR
markstack_grow
my_strerror
-
perl 5.19.10 1
OP_TYPE_IS_OR_WAS
-
perl 5.19.9 1234
_to_utf8_fold_flags
_to_utf8_lower_flags
_to_utf8_title_flags
_to_utf8_upper_flags
-
perl 5.19.7 1
OP_TYPE_IS
-
perl 5.19.4 123
append_utf8_from_native_byte
is_safe_syscall
uvoffuni_to_utf8_flags
-
perl 5.19.3 12
croak_memory_wrap
sv_pos_b2u_flags
-
perl 5.19.2 1
SVt_INVLIST
-
perl 5.19.1 12345
re_intuit_start
toFOLD
toFOLD_utf8
toLOWER_L1
toTITLE
-
perl 5.18.0 1
hv_rand_set
-
perl 5.17.9 12
av_tindex
av_top_index
-
perl 5.17.8 1234567
_is_uni_FOO
_is_uni_perl_idcont
_is_utf8_FOO
_is_utf8_mark
_is_utf8_perl_idcont
isALPHANUMERIC
isIDCONT
-
perl 5.17.7 123456
SvREFCNT_dec_NN
_is_uni_perl_idstart
_is_utf8_perl_idstart
is_uni_alnumc
is_uni_alnumc_lc
is_utf8_alnumc
-
perl 5.17.6 1
READ_XDIGIT
-
perl 5.17.4 1234
PL_comppad_name
PadlistREFCNT
newMYSUB
newSVpadname
-
perl 5.17.2 123456
is_uni_blank
is_uni_blank_lc
is_utf8_blank
sv_copypv_flags
sv_copypv_nomg
sv_vcatpvfn_flags
-
perl 5.15.9 1234
utf8_to_uvchr_buf
utf8_to_uvuni_buf
valid_utf8_to_uvchr
valid_utf8_to_uvuni
-
perl 5.15.8 12
is_utf8_char_buf
wrap_op_checker
-
perl 5.15.7 1234567
toLOWER_utf8
toTITLE_utf8
toUPPER_utf8
to_utf8_fold
to_utf8_lower
to_utf8_title
to_utf8_upper
-
perl 5.15.6 1
newCONSTSUB_flags
-
perl 5.15.4 1234567891011121314151617181920212223242526272829
HvENAMELEN
HvENAMEUTF8
HvNAMELEN
HvNAMEUTF8
gv_autoload_pv
gv_autoload_pvn
gv_autoload_sv
gv_fetchmeth_pv
gv_fetchmeth_pv_autoload
gv_fetchmeth_pvn
gv_fetchmeth_pvn_autoload
gv_fetchmeth_sv
gv_fetchmeth_sv_autoload
gv_fetchmethod_pv_flags
gv_fetchmethod_pvn_flags
gv_fetchmethod_sv_flags
gv_init_pv
gv_init_pvn
gv_init_sv
newGVgen_flags
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.1 12345678910
cop_fetch_label
cop_store_label
pad_add_name_pv
pad_add_name_pvn
pad_add_name_pvs
pad_add_name_sv
pad_findmy_pv
pad_findmy_pvn
pad_findmy_pvs
pad_findmy_sv
-
perl 5.14.0 1
_to_uni_fold_flags
-
perl 5.13.10 123
foldEQ_utf8_flags
is_utf8_xidcont
is_utf8_xidfirst
-
perl 5.13.8 12345
foldEQ_latin1
parse_arithexpr
parse_fullexpr
parse_listexpr
parse_termexpr
-
perl 5.13.7 12345678910111213141516171819202122232425262728293031323334
HvENAME
OP_CLASS
XopFLAGS
amagic_deref_call
bytes_cmp_utf8
cop_hints_2hv
cop_hints_fetch_pv
cop_hints_fetch_pvn
cop_hints_fetch_pvs
cop_hints_fetch_sv
cophh_2hv
cophh_copy
cophh_delete_pv
cophh_delete_pvn
cophh_delete_pvs
cophh_delete_sv
cophh_fetch_pv
cophh_fetch_pvn
cophh_fetch_pvs
cophh_fetch_sv
cophh_free
cophh_store_pv
cophh_store_pvn
cophh_store_pvs
cophh_store_sv
custom_op_register
custom_op_xop
newFOROP
newWHILEOP
op_lvalue
op_scope
parse_barestmt
parse_block
parse_label
-
perl 5.13.6 12345678910111213141516171819202122232425262728293031
LINKLIST
SvTRUE_nomg
ck_entersub_args_list
ck_entersub_args_proto
ck_entersub_args_proto_or_list
cv_get_call_checker
cv_set_call_checker
isWORDCHAR
lex_stuff_pv
mg_free_type
newSVpv_share
op_append_elem
op_append_list
op_contextualize
op_linklist
op_prepend_elem
parse_stmtseq
rv2cv_op_cv
savesharedpvs
savesharedsvpv
sv_2bool_flags
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
-
perl 5.13.5 1234
PL_rpeepp
isOCTAL
lex_stuff_pvs
parse_fullstmt
-
perl 5.13.3 12
blockhook_register
croak_no_modify
-
perl 5.13.2 12345678
SvNV_nomg
find_rundefsv
foldEQ
foldEQ_locale
foldEQ_utf8
hv_fill
sv_dec_nomg
sv_inc_nomg
-
perl 5.13.1 12345
croak_sv
die_sv
mess_sv
sv_2nv_flags
warn_sv
-
perl 5.11.5 1
sv_pos_u2b_flags
-
perl 5.11.4 1
prescan_version
-
perl 5.11.2 123456789101112
PL_keyword_plugin
lex_bufutf8
lex_discard_to
lex_grow_linestr
lex_next_chunk
lex_peek_unichar
lex_read_space
lex_read_to
lex_read_unichar
lex_stuff_pvn
lex_stuff_sv
lex_unstuff
-
perl 5.11.1 12345
ck_warner
ck_warner_d
is_utf8_perl_space
is_utf8_perl_word
is_utf8_posix_digit
-
perl 5.11.0 12345678910111213
Gv_AMupdate
PL_opfreehook
SVt_REGEXP
SvOOK_offset
av_iter_p
gv_add_by_type
is_ascii_string
pregfree2
save_adelete
save_aelem_flags
save_hdelete
save_helem_flags
sv_utf8_upgrade_flags_grow
-
perl 5.10.1 123456789101112
croak_xs_usage
mro_get_from_name
mro_get_private_data
mro_register
mro_set_mro
mro_set_private_data
save_hints
save_padsv_and_mortalize
save_pushi32ptr
save_pushptr
save_pushptrptr
sv_insert_flags
-
perl 5.10.0 123456
hv_common
hv_common_key_len
sv_destroyable
sys_init
sys_init3
sys_term
-
perl 5.9.5 12345678910111213141516171819202122232425262728
Perl_signbit
SvRX
SvRXOK
av_create_and_push
av_create_and_unshift_one
gv_fetchfile_flags
lex_start
mro_get_linear_isa
mro_method_changed_in
my_dirfd
pregcomp
ptr_table_clear
ptr_table_fetch
ptr_table_free
ptr_table_new
ptr_table_split
ptr_table_store
re_compile
reg_named_buff_all
reg_named_buff_exists
reg_named_buff_fetch
reg_named_buff_firstkey
reg_named_buff_nextkey
reg_named_buff_scalar
regfree_internal
savesharedpvn
scan_vstring
upg_version
-
perl 5.9.4 12345678
PerlIO_context_layers
gv_name_set
hv_copy_hints_hv
my_vsnprintf
newXS_flags
regclass_swash
sv_does
sv_usepvn_flags
-
perl 5.9.3 12345678910111213141516171819202122
av_arylen_p
ckwarn
ckwarn_d
csighandler
dMULTICALL
doref
gv_const_sv
hv_eiter_p
hv_eiter_set
hv_name_set
hv_placeholders_get
hv_placeholders_set
hv_riter_p
hv_riter_set
is_utf8_string_loclen
newGIVENOP
newSVhek
newWHENOP
pad_compname_type
savepvs
sortsv_flags
vverify
-
perl 5.9.2 123456
SvPVbyte_force
find_rundefsvoffset
op_refcnt_lock
op_refcnt_unlock
savesvpv
vnormal
-
perl 5.9.1 12345
hv_clear_placeholders
hv_scalar
scan_version
sv_2iv_flags
sv_2uv_flags
-
perl 5.9.0 12345
new_version
save_set_svflags
vcmp
vnumify
vstringify
-
perl 5.8.3 12
SvIsCOW
SvIsCOW_shared_hash
-
perl 5.8.1 1234567891011121314151617
CvPADLIST
PL_comppad
SvVOK
doing_taint
find_runcv
is_utf8_string_loc
packlist
pad_add_anon
pad_new
pad_tidy
save_bool
savestack_grow_cnt
seed
sv_cat_decode
sv_setpviv
sv_setpviv_mg
unpackstring
-
perl 5.8.0 12345
HeUTF8
hv_iternext_flags
hv_store_flags
is_utf8_idcont
nothreadhook
-
perl 5.7.3 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
OP_DESC
OP_NAME
PL_peepp
PerlIO_clearerr
PerlIO_close
PerlIO_eof
PerlIO_error
PerlIO_fileno
PerlIO_fill
PerlIO_flush
PerlIO_get_base
PerlIO_get_bufsiz
PerlIO_get_cnt
PerlIO_get_ptr
PerlIO_read
PerlIO_seek
PerlIO_set_cnt
PerlIO_set_ptrcnt
PerlIO_setlinebuf
PerlIO_stderr
PerlIO_stdin
PerlIO_stdout
PerlIO_tell
PerlIO_unread
PerlIO_write
SvLOCK
SvSHARE
SvUNLOCK
atfork_lock
atfork_unlock
custom_op_desc
custom_op_name
deb
debstack
debstackptrs
gv_fetchmeth_autoload
ibcmp_utf8
my_fork
my_socketpair
pack_cat
perl_destruct
pv_uni_display
save_shared_pvref
savesharedpv
sortsv
sv_magicext
sv_nolocking
sv_nosharing
sv_recode_to_utf8
sv_uni_display
toFOLD_uni
toLOWER_uni
toTITLE_uni
toUPPER_uni
to_uni_fold
to_uni_lower
to_uni_title
to_uni_upper
to_utf8_case
unpack_str
uvchr_to_utf8_flags
uvuni_to_utf8_flags
vdeb
-
perl 5.7.2 12345678910111213141516
calloc
getcwd_sv
init_tm
malloc
mfree
mini_mktime
my_atof2
my_strftime
op_null
realloc
sv_catpvn_flags
sv_catsv_flags
sv_setsv_flags
sv_utf8_upgrade_flags
sv_utf8_upgrade_nomg
swash_fetch
-
perl 5.7.1 12345678910111213141516171819202122
ASCII_TO_NEED
NATIVE_TO_NEED
POPpbytex
bytes_from_utf8
despatch_signals
do_openn
gv_handler
is_lvalue_sub
my_popen_list
save_mortalizesv
scan_num
sv_force_normal_flags
sv_setref_uv
sv_unref_flags
sv_utf8_upgrade
utf8_length
utf8_to_uvchr
utf8_to_uvuni
utf8n_to_uvchr
utf8n_to_uvuni
uvchr_to_utf8
uvuni_to_utf8
-
perl 5.6.1 12345678910
SvGAMAGIC
apply_attrs_string
bytes_to_utf8
gv_efullname4
gv_fullname4
is_utf8_string
save_generic_pvref
utf16_to_utf8
utf16_to_utf8_reversed
utf8_to_bytes
-
perl 5.6.0 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
PERL_SYS_INIT3
PL_check
SvIOK_UV
SvIOK_notUV
SvIOK_only_UV
SvPOK_only_UTF8
SvPVbyte_nolen
SvPVbytex
SvPVbytex_force
SvPVutf8
SvPVutf8_force
SvPVutf8_nolen
SvPVutf8x
SvPVutf8x_force
SvUOK
SvUTF8
SvUTF8_off
SvUTF8_on
av_delete
av_exists
call_atexit
caller_cx
cast_i32
cast_iv
cast_ulong
cast_uv
do_gv_dump
do_gvgv_dump
do_hv_dump
do_magic_dump
do_op_dump
do_open9
do_pmop_dump
do_sv_dump
dump_all
dump_eval
dump_form
dump_indent
dump_packsubs
dump_sub
dump_vindent
get_context
get_ppaddr
gv_dump
init_i18nl10n
init_i18nl14n
is_uni_alnum
is_uni_alnum_lc
is_uni_alpha
is_uni_alpha_lc
is_uni_ascii
is_uni_ascii_lc
is_uni_cntrl
is_uni_cntrl_lc
is_uni_digit
is_uni_digit_lc
is_uni_graph
is_uni_graph_lc
is_uni_idfirst
is_uni_idfirst_lc
is_uni_lower
is_uni_lower_lc
is_uni_print
is_uni_print_lc
is_uni_punct
is_uni_punct_lc
is_uni_space
is_uni_space_lc
is_uni_upper
is_uni_upper_lc
is_uni_xdigit
is_uni_xdigit_lc
is_utf8_alnum
is_utf8_alpha
is_utf8_ascii
is_utf8_char
is_utf8_cntrl
is_utf8_digit
is_utf8_graph
is_utf8_idfirst
is_utf8_lower
is_utf8_mark
is_utf8_print
is_utf8_punct
is_utf8_space
is_utf8_upper
is_utf8_xdigit
magic_dump
mess
my_atof
my_fflush_all
newANONATTRSUB
newATTRSUB
newXS
newXSproto
new_collate
new_ctype
new_numeric
op_dump
perl_parse
pmop_dump
re_intuit_string
reginitcolors
require_pv
safesyscalloc
safesysfree
safesysmalloc
safesysrealloc
save_I8
save_alloc
save_destructor
save_destructor_x
save_re_context
save_vptr
scan_bin
set_context
set_numeric_local
set_numeric_radix
set_numeric_standard
str_to_version
sv_2pvutf8
sv_2pvutf8_nolen
sv_force_normal
sv_len_utf8
sv_pos_b2u
sv_pos_u2b
sv_pv
sv_pvbyte
sv_pvbyten
sv_pvbyten_force
sv_pvutf8
sv_pvutf8n
sv_pvutf8n_force
sv_rvweaken
sv_utf8_decode
sv_utf8_downgrade
sv_utf8_encode
swash_init
to_uni_lower_lc
to_uni_title_lc
to_uni_upper_lc
utf8_distance
utf8_hop
vcroak
vform
vmess
vwarn
vwarner
-
perl 5.005_03 123
POPpx
get_vtbl
save_generic_svref
-
perl 5.005 123456789101112131415161718192021222324252627
PL_curpad
PL_modglobal
cx_dump
debop
debprofdump
fbm_compile
fbm_instr
get_op_descs
get_op_names
init_stacks
mg_length
mg_size
newHVhv
new_stackinfo
regdump
regexec_flags
regnext
runops_debug
runops_standard
save_iv
save_op
sv_iv
sv_nv
sv_peek
sv_pvn
sv_pvn_nomg
sv_true
-
perl 5.004_05 12345
CopyD
MoveD
do_binmode
save_aelem
save_helem
-
perl 5.004 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
GIMME_V
G_VOID
HePV
HeSVKEY_set
SvSetMagicSV
SvSetMagicSV_nosteal
SvSetSV_nosteal
SvTAINTED
SvTAINTED_off
SvTAINTED_on
block_end
block_gimme
block_start
call_list
delimcpy
form
gv_autoload4
gv_fetchmethod_autoload
hv_delayfree_ent
hv_free_ent
ibcmp_locale
intro_my
my_failure_exit
newSVpvf
rsignal
rsignal_state
save_I16
save_gp
share_hek
start_subparse
sv_catpvf
sv_catpvf_mg
sv_cmp_locale
sv_derived_from
sv_magic_portable
sv_setpvf
sv_setpvf_mg
sv_taint
sv_tainted
sv_untaint
sv_vcatpvf
sv_vcatpvf_mg
sv_vcatpvfn
sv_vsetpvf
sv_vsetpvf_mg
sv_vsetpvfn
toLOWER_LC
vnewSVpvf
warner
-
perl 5.003_07 1234567891011121314151617181920
HeHASH
HeKEY
HeKLEN
HeSVKEY
HeSVKEY_force
HeVAL
cv_const_sv
do_open
gv_efullname3
gv_fullname3
hv_delete_ent
hv_exists_ent
hv_fetch_ent
hv_iterkeysv
hv_ksplit
hv_store_ent
my_pclose
my_popen
sv_gets
unsharepvn
BUGS
If you find any bugs, Devel::PPPort
doesn't seem to build on your system, or any of its tests fail, please file an issue here: https://github.com/mhx/Devel-PPPort/issues/
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 with support from Matthew Horsfall (alh).
COPYRIGHT
Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
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.
Please login to continue.