Perl 5 version documentation

Devel::PPPort

NAME

Devel::PPPort - Perl/Pollution/Portability

SYNOPSIS

  1. Devel::PPPort::WriteFile(); # defaults to ./ppport.h
  2. Devel::PPPort::WriteFile('someheader.h');
  3. # Same as above but retrieve contents rather than write file
  4. my $contents = Devel::PPPort::GetFileContents();
  5. 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. _aMY_CXT
  2. _pMY_CXT
  3. aMY_CXT
  4. aMY_CXT_
  5. aTHX
  6. aTHX_
  7. aTHXR
  8. aTHXR_
  9. AvFILLp
  10. boolSV
  11. C_ARRAY_END
  12. C_ARRAY_LENGTH
  13. call_argv
  14. call_method
  15. call_pv
  16. call_sv
  17. caller_cx
  18. cBOOL
  19. ckWARN
  20. CopFILE
  21. CopFILE_set
  22. CopFILEAV
  23. CopFILEGV
  24. CopFILEGV_set
  25. CopFILESV
  26. CopSTASH
  27. CopSTASH_eq
  28. CopSTASH_set
  29. CopSTASHPV
  30. CopSTASHPV_set
  31. CopyD
  32. CPERLscope
  33. croak_memory_wrap
  34. croak_no_modify
  35. croak_nocontext
  36. croak_sv
  37. croak_xs_usage
  38. dAX
  39. dAXMARK
  40. DEFSV
  41. DEFSV_set
  42. die_sv
  43. dITEMS
  44. dMY_CXT
  45. dMY_CXT_SV
  46. dNOOP
  47. dTHR
  48. dTHX
  49. dTHXa
  50. dTHXoa
  51. dTHXR
  52. dUNDERBAR
  53. dVAR
  54. dXCPT
  55. dXSTARG
  56. END_EXTERN_C
  57. ERRSV
  58. eval_pv
  59. eval_sv
  60. EXTERN_C
  61. G_METHOD
  62. get_av
  63. get_cv
  64. get_cvs
  65. get_hv
  66. get_sv
  67. grok_bin
  68. grok_hex
  69. grok_number
  70. GROK_NUMERIC_RADIX
  71. grok_numeric_radix
  72. grok_oct
  73. gv_fetchpvn_flags
  74. gv_fetchpvs
  75. gv_stashpvn
  76. gv_stashpvs
  77. HEf_SVKEY
  78. HeUTF8
  79. hv_fetchs
  80. hv_stores
  81. HvNAME_get
  82. HvNAMELEN_get
  83. IN_LOCALE
  84. IN_LOCALE_COMPILETIME
  85. IN_LOCALE_RUNTIME
  86. IN_PERL_COMPILETIME
  87. INT2PTR
  88. IS_NUMBER_GREATER_THAN_UV_MAX
  89. IS_NUMBER_IN_UV
  90. IS_NUMBER_INFINITY
  91. IS_NUMBER_NAN
  92. IS_NUMBER_NEG
  93. IS_NUMBER_NOT_INT
  94. isALNUMC
  95. isASCII
  96. isBLANK
  97. isCNTRL
  98. isGRAPH
  99. isPRINT
  100. isPSXSPC
  101. isPUNCT
  102. isXDIGIT
  103. IVdf
  104. IVSIZE
  105. IVTYPE
  106. load_module
  107. memEQ
  108. memEQs
  109. memNE
  110. memNEs
  111. mess
  112. mess_nocontext
  113. mess_sv
  114. mg_findext
  115. MoveD
  116. mPUSHi
  117. mPUSHn
  118. mPUSHp
  119. mPUSHs
  120. mPUSHu
  121. MUTABLE_PTR
  122. MUTABLE_SV
  123. mXPUSHi
  124. mXPUSHn
  125. mXPUSHp
  126. mXPUSHs
  127. mXPUSHu
  128. MY_CXT
  129. MY_CXT_CLONE
  130. MY_CXT_INIT
  131. my_snprintf
  132. my_sprintf
  133. my_strlcat
  134. my_strlcpy
  135. newCONSTSUB
  136. newRV_inc
  137. newRV_noinc
  138. newSV_type
  139. newSVpvn
  140. newSVpvn_flags
  141. newSVpvn_share
  142. newSVpvn_utf8
  143. newSVpvs
  144. newSVpvs_flags
  145. newSVpvs_share
  146. newSVuv
  147. Newx
  148. Newxc
  149. Newxz
  150. NOOP
  151. NUM2PTR
  152. NVef
  153. NVff
  154. NVgf
  155. NVTYPE
  156. OpHAS_SIBLING
  157. OpLASTSIB_set
  158. OpMAYBESIB_set
  159. OpMORESIB_set
  160. OpSIBLING
  161. packWARN
  162. PERL_ABS
  163. PERL_ARGS_ASSERT_CROAK_XS_USAGE
  164. PERL_BCDVERSION
  165. Perl_croak_no_modify
  166. PERL_GCC_BRACE_GROUPS_FORBIDDEN
  167. PERL_HASH
  168. PERL_INT_MAX
  169. PERL_INT_MIN
  170. PERL_LONG_MAX
  171. PERL_LONG_MIN
  172. PERL_MAGIC_arylen
  173. PERL_MAGIC_backref
  174. PERL_MAGIC_bm
  175. PERL_MAGIC_collxfrm
  176. PERL_MAGIC_dbfile
  177. PERL_MAGIC_dbline
  178. PERL_MAGIC_defelem
  179. PERL_MAGIC_env
  180. PERL_MAGIC_envelem
  181. PERL_MAGIC_ext
  182. PERL_MAGIC_fm
  183. PERL_MAGIC_glob
  184. PERL_MAGIC_isa
  185. PERL_MAGIC_isaelem
  186. PERL_MAGIC_mutex
  187. PERL_MAGIC_nkeys
  188. PERL_MAGIC_overload
  189. PERL_MAGIC_overload_elem
  190. PERL_MAGIC_overload_table
  191. PERL_MAGIC_pos
  192. PERL_MAGIC_qr
  193. PERL_MAGIC_regdata
  194. PERL_MAGIC_regdatum
  195. PERL_MAGIC_regex_global
  196. PERL_MAGIC_shared
  197. PERL_MAGIC_shared_scalar
  198. PERL_MAGIC_sig
  199. PERL_MAGIC_sigelem
  200. PERL_MAGIC_substr
  201. PERL_MAGIC_sv
  202. PERL_MAGIC_taint
  203. PERL_MAGIC_tied
  204. PERL_MAGIC_tiedelem
  205. PERL_MAGIC_tiedscalar
  206. PERL_MAGIC_utf8
  207. PERL_MAGIC_uvar
  208. PERL_MAGIC_uvar_elem
  209. PERL_MAGIC_vec
  210. PERL_MAGIC_vstring
  211. PERL_PV_ESCAPE_ALL
  212. PERL_PV_ESCAPE_FIRSTCHAR
  213. PERL_PV_ESCAPE_NOBACKSLASH
  214. PERL_PV_ESCAPE_NOCLEAR
  215. PERL_PV_ESCAPE_QUOTE
  216. PERL_PV_ESCAPE_RE
  217. PERL_PV_ESCAPE_UNI
  218. PERL_PV_ESCAPE_UNI_DETECT
  219. PERL_PV_PRETTY_DUMP
  220. PERL_PV_PRETTY_ELLIPSES
  221. PERL_PV_PRETTY_LTGT
  222. PERL_PV_PRETTY_NOCLEAR
  223. PERL_PV_PRETTY_QUOTE
  224. PERL_PV_PRETTY_REGPROP
  225. PERL_QUAD_MAX
  226. PERL_QUAD_MIN
  227. PERL_REVISION
  228. PERL_SCAN_ALLOW_UNDERSCORES
  229. PERL_SCAN_DISALLOW_PREFIX
  230. PERL_SCAN_GREATER_THAN_UV_MAX
  231. PERL_SCAN_SILENT_ILLDIGIT
  232. PERL_SHORT_MAX
  233. PERL_SHORT_MIN
  234. PERL_SIGNALS_UNSAFE_FLAG
  235. PERL_SUBVERSION
  236. PERL_UCHAR_MAX
  237. PERL_UCHAR_MIN
  238. PERL_UINT_MAX
  239. PERL_UINT_MIN
  240. PERL_ULONG_MAX
  241. PERL_ULONG_MIN
  242. PERL_UNUSED_ARG
  243. PERL_UNUSED_CONTEXT
  244. PERL_UNUSED_DECL
  245. PERL_UNUSED_RESULT
  246. PERL_UNUSED_VAR
  247. PERL_UQUAD_MAX
  248. PERL_UQUAD_MIN
  249. PERL_USE_GCC_BRACE_GROUPS
  250. PERL_USHORT_MAX
  251. PERL_USHORT_MIN
  252. PERL_VERSION
  253. Perl_warner
  254. Perl_warner_nocontext
  255. PERLIO_FUNCS_CAST
  256. PERLIO_FUNCS_DECL
  257. PL_bufend
  258. PL_bufptr
  259. PL_compiling
  260. PL_copline
  261. PL_curcop
  262. PL_curstash
  263. PL_DBsignal
  264. PL_DBsingle
  265. PL_DBsub
  266. PL_DBtrace
  267. PL_debstash
  268. PL_defgv
  269. PL_diehook
  270. PL_dirty
  271. PL_dowarn
  272. PL_errgv
  273. PL_error_count
  274. PL_expect
  275. PL_hexdigit
  276. PL_hints
  277. PL_in_my
  278. PL_in_my_stash
  279. PL_laststatval
  280. PL_lex_state
  281. PL_lex_stuff
  282. PL_linestr
  283. PL_na
  284. PL_no_modify
  285. PL_parser
  286. PL_perl_destruct_level
  287. PL_perldb
  288. PL_ppaddr
  289. PL_rsfp
  290. PL_rsfp_filters
  291. PL_signals
  292. PL_stack_base
  293. PL_stack_sp
  294. PL_statcache
  295. PL_stdingv
  296. PL_Sv
  297. PL_sv_arenaroot
  298. PL_sv_no
  299. PL_sv_undef
  300. PL_sv_yes
  301. PL_tainted
  302. PL_tainting
  303. PL_tokenbuf
  304. pMY_CXT
  305. pMY_CXT_
  306. Poison
  307. PoisonFree
  308. PoisonNew
  309. PoisonWith
  310. pTHX
  311. pTHX_
  312. PTR2IV
  313. PTR2nat
  314. PTR2NV
  315. PTR2ul
  316. PTR2UV
  317. PTRV
  318. PUSHmortal
  319. PUSHu
  320. pv_display
  321. pv_escape
  322. pv_pretty
  323. SAVE_DEFSV
  324. START_EXTERN_C
  325. START_MY_CXT
  326. STMT_END
  327. STMT_START
  328. STR_WITH_LEN
  329. sv_2pv_flags
  330. sv_2pv_nolen
  331. sv_2pvbyte
  332. sv_2pvbyte_nolen
  333. sv_2uv
  334. sv_catpv_mg
  335. sv_catpvf_mg
  336. sv_catpvf_mg_nocontext
  337. sv_catpvn_mg
  338. sv_catpvn_nomg
  339. sv_catpvs
  340. sv_catsv_mg
  341. sv_catsv_nomg
  342. SV_CONST_RETURN
  343. SV_COW_DROP_PV
  344. SV_COW_SHARED_HASH_KEYS
  345. SV_GMAGIC
  346. SV_HAS_TRAILING_NUL
  347. SV_IMMEDIATE_UNREF
  348. sv_magic_portable
  349. SV_MUTABLE_RETURN
  350. SV_NOSTEAL
  351. sv_pvn_force_flags
  352. sv_pvn_nomg
  353. sv_setiv_mg
  354. sv_setnv_mg
  355. sv_setpv_mg
  356. sv_setpvf_mg
  357. sv_setpvf_mg_nocontext
  358. sv_setpvn_mg
  359. sv_setpvs
  360. sv_setsv_mg
  361. sv_setsv_nomg
  362. sv_setuv
  363. sv_setuv_mg
  364. SV_SMAGIC
  365. sv_unmagicext
  366. sv_usepvn_mg
  367. SV_UTF8_NO_ENCODING
  368. sv_uv
  369. sv_vcatpvf
  370. sv_vcatpvf_mg
  371. sv_vsetpvf
  372. sv_vsetpvf_mg
  373. SVf
  374. SVf_UTF8
  375. SVfARG
  376. SvGETMAGIC
  377. SvIV_nomg
  378. SvMAGIC_set
  379. SvPV_const
  380. SvPV_flags
  381. SvPV_flags_const
  382. SvPV_flags_const_nolen
  383. SvPV_flags_mutable
  384. SvPV_force
  385. SvPV_force_flags
  386. SvPV_force_flags_mutable
  387. SvPV_force_flags_nolen
  388. SvPV_force_mutable
  389. SvPV_force_nolen
  390. SvPV_force_nomg
  391. SvPV_force_nomg_nolen
  392. SvPV_mutable
  393. SvPV_nolen
  394. SvPV_nolen_const
  395. SvPV_nomg
  396. SvPV_nomg_const
  397. SvPV_nomg_const_nolen
  398. SvPV_nomg_nolen
  399. SvPV_renew
  400. SvPVbyte
  401. SvPVX_const
  402. SvPVX_mutable
  403. SvREFCNT_inc
  404. SvREFCNT_inc_NN
  405. SvREFCNT_inc_simple
  406. SvREFCNT_inc_simple_NN
  407. SvREFCNT_inc_simple_void
  408. SvREFCNT_inc_simple_void_NN
  409. SvREFCNT_inc_void
  410. SvREFCNT_inc_void_NN
  411. SvRV_set
  412. SvRX
  413. SvRXOK
  414. SvSHARED_HASH
  415. SvSTASH_set
  416. SvUOK
  417. SvUV
  418. SvUV_nomg
  419. SvUV_set
  420. SvUVX
  421. SvUVx
  422. SvUVXx
  423. SvVSTRING_mg
  424. UNDERBAR
  425. UTF8_MAXBYTES
  426. UVof
  427. UVSIZE
  428. UVTYPE
  429. UVuf
  430. UVXf
  431. UVxf
  432. vload_module
  433. vmess
  434. vnewSVpvf
  435. WARN_ALL
  436. WARN_AMBIGUOUS
  437. WARN_ASSERTIONS
  438. WARN_BAREWORD
  439. WARN_CLOSED
  440. WARN_CLOSURE
  441. WARN_DEBUGGING
  442. WARN_DEPRECATED
  443. WARN_DIGIT
  444. WARN_EXEC
  445. WARN_EXITING
  446. WARN_GLOB
  447. WARN_INPLACE
  448. WARN_INTERNAL
  449. WARN_IO
  450. WARN_LAYER
  451. WARN_MALLOC
  452. WARN_MISC
  453. WARN_NEWLINE
  454. warn_nocontext
  455. WARN_NUMERIC
  456. WARN_ONCE
  457. WARN_OVERFLOW
  458. WARN_PACK
  459. WARN_PARENTHESIS
  460. WARN_PIPE
  461. WARN_PORTABLE
  462. WARN_PRECEDENCE
  463. WARN_PRINTF
  464. WARN_PROTOTYPE
  465. WARN_QW
  466. WARN_RECURSION
  467. WARN_REDEFINE
  468. WARN_REGEXP
  469. WARN_RESERVED
  470. WARN_SEMICOLON
  471. WARN_SEVERE
  472. WARN_SIGNAL
  473. WARN_SUBSTR
  474. warn_sv
  475. WARN_SYNTAX
  476. WARN_TAINT
  477. WARN_THREADS
  478. WARN_UNINITIALIZED
  479. WARN_UNOPENED
  480. WARN_UNPACK
  481. WARN_UNTIE
  482. WARN_UTF8
  483. WARN_VOID
  484. warner
  485. WIDEST_UTYPE
  486. XCPT_CATCH
  487. XCPT_RETHROW
  488. XCPT_TRY_END
  489. XCPT_TRY_START
  490. XPUSHmortal
  491. XPUSHu
  492. XSprePUSH
  493. XSPROTO
  494. XSRETURN
  495. XSRETURN_UV
  496. XST_mUV
  497. 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.24.0
    1. BhkDISABLE
    2. BhkENABLE
    3. BhkENTRY_set
    4. MULTICALL
    5. PERL_SYS_TERM
    6. POP_MULTICALL
    7. PUSH_MULTICALL
    8. PadARRAY
    9. PadMAX
    10. PadlistARRAY
    11. PadlistMAX
    12. PadlistNAMES
    13. PadlistNAMESARRAY
    14. PadlistNAMESMAX
    15. PadnameLEN
    16. PadnamePV
    17. PadnameREFCNT
    18. PadnameREFCNT_dec
    19. PadnameSV
    20. PadnamelistARRAY
    21. PadnamelistMAX
    22. PadnamelistREFCNT
    23. PadnamelistREFCNT_dec
    24. RESTORE_LC_NUMERIC
    25. STORE_LC_NUMERIC_FORCE_TO_UNDERLYING
    26. STORE_LC_NUMERIC_SET_TO_NEEDED
    27. XS_APIVERSION_BOOTCHECK
    28. XS_EXTERNAL
    29. XS_INTERNAL
    30. XS_VERSION_BOOTCHECK
    31. XopDISABLE
    32. XopENABLE
    33. XopENTRY
    34. XopENTRYCUSTOM
    35. XopENTRY_set
    36. cophh_new_empty
    37. my_lstat
    38. my_stat
    39. reentrant_free
    40. reentrant_init
    41. reentrant_retry
    42. reentrant_size
    43. ref
    44. sv_setref_pvs
  • perl 5.23.9
    1. toFOLD_uvchr
    2. toLOWER_uvchr
    3. toTITLE_uvchr
    4. toUPPER_uvchr
  • perl 5.23.8
    1. clear_defarray
    2. cx_popblock
    3. cx_popeval
    4. cx_popformat
    5. cx_popgiven
    6. cx_poploop
    7. cx_popsub
    8. cx_popsub_args
    9. cx_popsub_common
    10. cx_popwhen
    11. cx_pushblock
    12. cx_pusheval
    13. cx_pushformat
    14. cx_pushgiven
    15. cx_pushloop_for
    16. cx_pushloop_plain
    17. cx_pushsub
    18. cx_pushwhen
    19. cx_topblock
    20. leave_adjust_stacks
    21. savetmps
  • perl 5.22.0
    1. UVCHR_SKIP
  • perl 5.21.10
    1. DECLARATION_FOR_LC_NUMERIC_MANIPULATION
  • perl 5.21.8
    1. sv_get_backrefs
  • perl 5.21.7
    1. PadnameUTF8
    2. is_invariant_string
    3. newPADNAMELIST
    4. newPADNAMEouter
    5. newPADNAMEpvn
    6. newUNOP_AUX
    7. padnamelist_fetch
    8. padnamelist_store
  • perl 5.21.6
    1. newDEFSVOP
    2. op_convert_list
  • perl 5.21.5
    1. cv_name
    2. newMETHOP
    3. newMETHOP_named
  • perl 5.21.4
    1. cv_set_call_checker_flags
    2. grok_infnan
    3. isinfnan
    4. sync_locale
  • perl 5.21.2
    1. grok_number_flags
    2. op_sibling_splice
  • perl 5.21.1
    1. _is_in_locale_category
    2. _is_utf8_char_slow
    3. _is_utf8_idcont
    4. _is_utf8_idstart
    5. _is_utf8_xidcont
    6. _is_utf8_xidstart
    7. isALNUM_lazy
    8. isIDFIRST_lazy
    9. isUTF8_CHAR
    10. markstack_grow
    11. my_strerror
  • perl 5.19.10
    1. OP_TYPE_IS_OR_WAS
  • perl 5.19.9
    1. _to_utf8_fold_flags
    2. _to_utf8_lower_flags
    3. _to_utf8_title_flags
    4. _to_utf8_upper_flags
  • perl 5.19.7
    1. OP_TYPE_IS
  • perl 5.19.4
    1. append_utf8_from_native_byte
    2. is_safe_syscall
    3. uvoffuni_to_utf8_flags
  • perl 5.19.3
    1. sv_pos_b2u_flags
  • perl 5.19.2
    1. SVt_INVLIST
  • perl 5.19.1
    1. re_intuit_start
    2. toFOLD
    3. toFOLD_utf8
    4. toLOWER_L1
    5. toTITLE
  • perl 5.18.0
    1. hv_rand_set
  • perl 5.17.9
    1. av_tindex
    2. av_top_index
  • perl 5.17.8
    1. _is_uni_FOO
    2. _is_uni_perl_idcont
    3. _is_utf8_FOO
    4. _is_utf8_mark
    5. _is_utf8_perl_idcont
    6. isALPHANUMERIC
    7. isIDCONT
  • perl 5.17.7
    1. SvREFCNT_dec_NN
    2. _is_uni_perl_idstart
    3. _is_utf8_perl_idstart
    4. is_uni_alnumc
    5. is_uni_alnumc_lc
    6. is_utf8_alnumc
  • perl 5.17.6
    1. READ_XDIGIT
  • perl 5.17.4
    1. PL_comppad_name
    2. PadlistREFCNT
    3. newMYSUB
    4. newSVpadname
  • perl 5.17.2
    1. is_uni_blank
    2. is_uni_blank_lc
    3. is_utf8_blank
    4. sv_copypv_flags
    5. sv_copypv_nomg
    6. sv_vcatpvfn_flags
  • perl 5.15.9
    1. utf8_to_uvchr_buf
    2. utf8_to_uvuni_buf
    3. valid_utf8_to_uvchr
    4. valid_utf8_to_uvuni
  • perl 5.15.8
    1. is_utf8_char_buf
    2. wrap_op_checker
  • perl 5.15.7
    1. toLOWER_utf8
    2. toTITLE_utf8
    3. toUPPER_utf8
    4. to_utf8_fold
    5. to_utf8_lower
    6. to_utf8_title
    7. to_utf8_upper
  • perl 5.15.6
    1. newCONSTSUB_flags
  • perl 5.15.4
    1. HvENAMELEN
    2. HvENAMEUTF8
    3. HvNAMELEN
    4. HvNAMEUTF8
    5. gv_autoload_pv
    6. gv_autoload_pvn
    7. gv_autoload_sv
    8. gv_fetchmeth_pv
    9. gv_fetchmeth_pv_autoload
    10. gv_fetchmeth_pvn
    11. gv_fetchmeth_pvn_autoload
    12. gv_fetchmeth_sv
    13. gv_fetchmeth_sv_autoload
    14. gv_fetchmethod_pv_flags
    15. gv_fetchmethod_pvn_flags
    16. gv_fetchmethod_sv_flags
    17. gv_init_pv
    18. gv_init_sv
    19. newGVgen_flags
    20. sv_derived_from_pv
    21. sv_derived_from_pvn
    22. sv_derived_from_sv
    23. sv_does_pv
    24. sv_does_pvn
    25. sv_does_sv
    26. sv_ref
    27. whichsig_pv
    28. whichsig_pvn
    29. whichsig_sv
  • perl 5.15.1
    1. cop_fetch_label
    2. cop_store_label
    3. pad_add_name_pv
    4. pad_add_name_pvn
    5. pad_add_name_pvs
    6. pad_add_name_sv
    7. pad_findmy_pv
    8. pad_findmy_pvn
    9. pad_findmy_pvs
    10. pad_findmy_sv
  • perl 5.14.0
    1. _to_uni_fold_flags
  • perl 5.13.10
    1. foldEQ_utf8_flags
    2. is_utf8_xidcont
    3. is_utf8_xidfirst
  • perl 5.13.8
    1. foldEQ_latin1
    2. parse_arithexpr
    3. parse_fullexpr
    4. parse_listexpr
    5. parse_termexpr
  • perl 5.13.7
    1. HvENAME
    2. OP_CLASS
    3. XopFLAGS
    4. amagic_deref_call
    5. bytes_cmp_utf8
    6. cop_hints_2hv
    7. cop_hints_fetch_pv
    8. cop_hints_fetch_pvn
    9. cop_hints_fetch_pvs
    10. cop_hints_fetch_sv
    11. cophh_2hv
    12. cophh_copy
    13. cophh_delete_pv
    14. cophh_delete_pvn
    15. cophh_delete_pvs
    16. cophh_delete_sv
    17. cophh_fetch_pv
    18. cophh_fetch_pvn
    19. cophh_fetch_pvs
    20. cophh_fetch_sv
    21. cophh_free
    22. cophh_store_pv
    23. cophh_store_pvn
    24. cophh_store_pvs
    25. cophh_store_sv
    26. custom_op_register
    27. custom_op_xop
    28. newFOROP
    29. newWHILEOP
    30. op_lvalue
    31. op_scope
    32. parse_barestmt
    33. parse_block
    34. parse_label
  • perl 5.13.6
    1. LINKLIST
    2. SvTRUE_nomg
    3. ck_entersub_args_list
    4. ck_entersub_args_proto
    5. ck_entersub_args_proto_or_list
    6. cv_get_call_checker
    7. cv_set_call_checker
    8. isWORDCHAR
    9. lex_stuff_pv
    10. mg_free_type
    11. newSVpv_share
    12. op_append_elem
    13. op_append_list
    14. op_contextualize
    15. op_linklist
    16. op_prepend_elem
    17. parse_stmtseq
    18. rv2cv_op_cv
    19. savesharedpvs
    20. savesharedsvpv
    21. sv_2bool_flags
    22. sv_catpv_flags
    23. sv_catpv_nomg
    24. sv_catpvs_flags
    25. sv_catpvs_mg
    26. sv_catpvs_nomg
    27. sv_cmp_flags
    28. sv_cmp_locale_flags
    29. sv_collxfrm_flags
    30. sv_eq_flags
    31. sv_setpvs_mg
  • perl 5.13.5
    1. PL_rpeepp
    2. isOCTAL
    3. lex_stuff_pvs
    4. parse_fullstmt
  • perl 5.13.3
    1. blockhook_register
  • perl 5.13.2
    1. SvNV_nomg
    2. find_rundefsv
    3. foldEQ
    4. foldEQ_locale
    5. foldEQ_utf8
    6. hv_fill
    7. sv_dec_nomg
    8. sv_inc_nomg
  • perl 5.13.1
    1. sv_2nv_flags
  • perl 5.11.5
    1. sv_pos_u2b_flags
  • perl 5.11.4
    1. prescan_version
  • perl 5.11.2
    1. PL_keyword_plugin
    2. lex_bufutf8
    3. lex_discard_to
    4. lex_grow_linestr
    5. lex_next_chunk
    6. lex_peek_unichar
    7. lex_read_space
    8. lex_read_to
    9. lex_read_unichar
    10. lex_stuff_pvn
    11. lex_stuff_sv
    12. lex_unstuff
  • perl 5.11.1
    1. ck_warner
    2. ck_warner_d
    3. is_utf8_perl_space
    4. is_utf8_perl_word
    5. is_utf8_posix_digit
  • perl 5.11.0
    1. Gv_AMupdate
    2. PL_opfreehook
    3. SVt_REGEXP
    4. SvOOK_offset
    5. av_iter_p
    6. gv_add_by_type
    7. is_ascii_string
    8. pregfree2
    9. save_adelete
    10. save_aelem_flags
    11. save_hdelete
    12. save_helem_flags
    13. sv_utf8_upgrade_flags_grow
  • perl 5.10.1
    1. mro_get_from_name
    2. mro_get_private_data
    3. mro_register
    4. mro_set_mro
    5. mro_set_private_data
    6. save_hints
    7. save_padsv_and_mortalize
    8. save_pushi32ptr
    9. save_pushptr
    10. save_pushptrptr
    11. sv_insert_flags
  • perl 5.10.0
    1. hv_common
    2. hv_common_key_len
    3. sv_destroyable
    4. sys_init
    5. sys_init3
    6. sys_term
  • perl 5.9.5
    1. Perl_signbit
    2. av_create_and_push
    3. av_create_and_unshift_one
    4. gv_fetchfile_flags
    5. lex_start
    6. mro_get_linear_isa
    7. mro_method_changed_in
    8. my_dirfd
    9. pregcomp
    10. ptr_table_clear
    11. ptr_table_fetch
    12. ptr_table_free
    13. ptr_table_new
    14. ptr_table_split
    15. ptr_table_store
    16. re_compile
    17. reg_named_buff_all
    18. reg_named_buff_exists
    19. reg_named_buff_fetch
    20. reg_named_buff_firstkey
    21. reg_named_buff_nextkey
    22. reg_named_buff_scalar
    23. regfree_internal
    24. savesharedpvn
    25. scan_vstring
    26. upg_version
  • perl 5.9.4
    1. PerlIO_context_layers
    2. gv_name_set
    3. hv_copy_hints_hv
    4. my_vsnprintf
    5. newXS_flags
    6. regclass_swash
    7. sv_does
    8. sv_usepvn_flags
  • perl 5.9.3
    1. av_arylen_p
    2. ckwarn
    3. ckwarn_d
    4. csighandler
    5. dMULTICALL
    6. doref
    7. gv_const_sv
    8. hv_eiter_p
    9. hv_eiter_set
    10. hv_name_set
    11. hv_placeholders_get
    12. hv_placeholders_set
    13. hv_riter_p
    14. hv_riter_set
    15. is_utf8_string_loclen
    16. newGIVENOP
    17. newSVhek
    18. newWHENOP
    19. pad_compname_type
    20. savepvs
    21. sortsv_flags
    22. vverify
  • perl 5.9.2
    1. SvPVbyte_force
    2. find_rundefsvoffset
    3. op_refcnt_lock
    4. op_refcnt_unlock
    5. savesvpv
    6. vnormal
  • perl 5.9.1
    1. hv_clear_placeholders
    2. hv_scalar
    3. scan_version
    4. sv_2iv_flags
    5. sv_2uv_flags
  • perl 5.9.0
    1. new_version
    2. save_set_svflags
    3. vcmp
    4. vnumify
    5. vstringify
  • perl 5.8.3
    1. SvIsCOW
    2. SvIsCOW_shared_hash
  • perl 5.8.1
    1. CvPADLIST
    2. PL_comppad
    3. SvVOK
    4. doing_taint
    5. find_runcv
    6. is_utf8_string_loc
    7. packlist
    8. pad_add_anon
    9. pad_new
    10. pad_tidy
    11. save_bool
    12. savestack_grow_cnt
    13. seed
    14. sv_cat_decode
    15. sv_setpviv
    16. sv_setpviv_mg
    17. unpackstring
  • perl 5.8.0
    1. HeUTF8
    2. hv_iternext_flags
    3. hv_store_flags
    4. is_utf8_idcont
    5. nothreadhook
  • perl 5.7.3
    1. OP_DESC
    2. OP_NAME
    3. PL_peepp
    4. PerlIO_clearerr
    5. PerlIO_close
    6. PerlIO_eof
    7. PerlIO_error
    8. PerlIO_fileno
    9. PerlIO_fill
    10. PerlIO_flush
    11. PerlIO_get_base
    12. PerlIO_get_bufsiz
    13. PerlIO_get_cnt
    14. PerlIO_get_ptr
    15. PerlIO_read
    16. PerlIO_seek
    17. PerlIO_set_cnt
    18. PerlIO_set_ptrcnt
    19. PerlIO_setlinebuf
    20. PerlIO_stderr
    21. PerlIO_stdin
    22. PerlIO_stdout
    23. PerlIO_tell
    24. PerlIO_unread
    25. PerlIO_write
    26. SvLOCK
    27. SvSHARE
    28. SvUNLOCK
    29. atfork_lock
    30. atfork_unlock
    31. custom_op_desc
    32. custom_op_name
    33. deb
    34. debstack
    35. debstackptrs
    36. gv_fetchmeth_autoload
    37. ibcmp_utf8
    38. my_fork
    39. my_socketpair
    40. pack_cat
    41. perl_destruct
    42. pv_uni_display
    43. save_shared_pvref
    44. savesharedpv
    45. sortsv
    46. sv_magicext
    47. sv_nolocking
    48. sv_nosharing
    49. sv_recode_to_utf8
    50. sv_uni_display
    51. to_uni_fold
    52. to_uni_lower
    53. to_uni_title
    54. to_uni_upper
    55. to_utf8_case
    56. unpack_str
    57. uvchr_to_utf8_flags
    58. uvuni_to_utf8_flags
    59. vdeb
  • perl 5.7.2
    1. calloc
    2. getcwd_sv
    3. init_tm
    4. malloc
    5. mfree
    6. mini_mktime
    7. my_atof2
    8. my_strftime
    9. op_null
    10. realloc
    11. sv_catpvn_flags
    12. sv_catsv_flags
    13. sv_setsv_flags
    14. sv_utf8_upgrade_flags
    15. sv_utf8_upgrade_nomg
    16. swash_fetch
  • perl 5.7.1
    1. ASCII_TO_NEED
    2. NATIVE_TO_NEED
    3. POPpbytex
    4. bytes_from_utf8
    5. despatch_signals
    6. do_openn
    7. gv_handler
    8. is_lvalue_sub
    9. my_popen_list
    10. save_mortalizesv
    11. scan_num
    12. sv_force_normal_flags
    13. sv_setref_uv
    14. sv_unref_flags
    15. sv_utf8_upgrade
    16. utf8_length
    17. utf8_to_uvchr
    18. utf8_to_uvuni
    19. utf8n_to_uvchr
    20. utf8n_to_uvuni
    21. uvchr_to_utf8
    22. uvuni_to_utf8
  • perl 5.6.1
    1. SvGAMAGIC
    2. apply_attrs_string
    3. bytes_to_utf8
    4. gv_efullname4
    5. gv_fullname4
    6. is_utf8_string
    7. save_generic_pvref
    8. utf16_to_utf8
    9. utf16_to_utf8_reversed
    10. utf8_to_bytes
  • perl 5.6.0
    1. DO_UTF8
    2. PERL_SYS_INIT3
    3. PL_check
    4. POPul
    5. SvIOK_UV
    6. SvIOK_notUV
    7. SvIOK_only_UV
    8. SvPOK_only_UTF8
    9. SvPVbyte_nolen
    10. SvPVbytex
    11. SvPVbytex_force
    12. SvPVutf8
    13. SvPVutf8_force
    14. SvPVutf8_nolen
    15. SvPVutf8x
    16. SvPVutf8x_force
    17. SvUOK
    18. SvUTF8
    19. SvUTF8_off
    20. SvUTF8_on
    21. UTF8SKIP
    22. av_delete
    23. av_exists
    24. call_atexit
    25. caller_cx
    26. cast_i32
    27. cast_iv
    28. cast_ulong
    29. cast_uv
    30. do_gv_dump
    31. do_gvgv_dump
    32. do_hv_dump
    33. do_magic_dump
    34. do_op_dump
    35. do_open9
    36. do_pmop_dump
    37. do_sv_dump
    38. dump_all
    39. dump_eval
    40. dump_form
    41. dump_indent
    42. dump_packsubs
    43. dump_sub
    44. dump_vindent
    45. get_context
    46. get_ppaddr
    47. gv_dump
    48. init_i18nl10n
    49. init_i18nl14n
    50. is_uni_alnum
    51. is_uni_alnum_lc
    52. is_uni_alpha
    53. is_uni_alpha_lc
    54. is_uni_ascii
    55. is_uni_ascii_lc
    56. is_uni_cntrl
    57. is_uni_cntrl_lc
    58. is_uni_digit
    59. is_uni_digit_lc
    60. is_uni_graph
    61. is_uni_graph_lc
    62. is_uni_idfirst
    63. is_uni_idfirst_lc
    64. is_uni_lower
    65. is_uni_lower_lc
    66. is_uni_print
    67. is_uni_print_lc
    68. is_uni_punct
    69. is_uni_punct_lc
    70. is_uni_space
    71. is_uni_space_lc
    72. is_uni_upper
    73. is_uni_upper_lc
    74. is_uni_xdigit
    75. is_uni_xdigit_lc
    76. is_utf8_alnum
    77. is_utf8_alpha
    78. is_utf8_ascii
    79. is_utf8_char
    80. is_utf8_cntrl
    81. is_utf8_digit
    82. is_utf8_graph
    83. is_utf8_idfirst
    84. is_utf8_lower
    85. is_utf8_mark
    86. is_utf8_print
    87. is_utf8_punct
    88. is_utf8_space
    89. is_utf8_upper
    90. is_utf8_xdigit
    91. magic_dump
    92. my_atof
    93. my_fflush_all
    94. newANONATTRSUB
    95. newATTRSUB
    96. newXS
    97. newXSproto
    98. new_collate
    99. new_ctype
    100. new_numeric
    101. op_dump
    102. perl_parse
    103. pmop_dump
    104. re_intuit_string
    105. reginitcolors
    106. require_pv
    107. safesyscalloc
    108. safesysfree
    109. safesysmalloc
    110. safesysrealloc
    111. save_I8
    112. save_alloc
    113. save_destructor
    114. save_destructor_x
    115. save_re_context
    116. save_vptr
    117. scan_bin
    118. set_context
    119. set_numeric_local
    120. set_numeric_radix
    121. set_numeric_standard
    122. str_to_version
    123. sv_2pvutf8
    124. sv_2pvutf8_nolen
    125. sv_force_normal
    126. sv_len_utf8
    127. sv_pos_b2u
    128. sv_pos_u2b
    129. sv_pv
    130. sv_pvbyte
    131. sv_pvbyten
    132. sv_pvbyten_force
    133. sv_pvutf8
    134. sv_pvutf8n
    135. sv_pvutf8n_force
    136. sv_rvweaken
    137. sv_utf8_decode
    138. sv_utf8_downgrade
    139. sv_utf8_encode
    140. swash_init
    141. to_uni_lower_lc
    142. to_uni_title_lc
    143. to_uni_upper_lc
    144. utf8_distance
    145. utf8_hop
    146. vcroak
    147. vform
    148. vwarn
    149. vwarner
  • perl 5.005_03
    1. POPpx
    2. get_vtbl
    3. save_generic_svref
  • perl 5.005
    1. PL_curpad
    2. PL_modglobal
    3. cx_dump
    4. debop
    5. debprofdump
    6. fbm_compile
    7. fbm_instr
    8. get_op_descs
    9. get_op_names
    10. init_stacks
    11. mg_length
    12. mg_size
    13. newHVhv
    14. new_stackinfo
    15. regdump
    16. regexec_flags
    17. regnext
    18. runops_debug
    19. runops_standard
    20. save_iv
    21. save_op
    22. sv_iv
    23. sv_nv
    24. sv_peek
    25. sv_pvn
    26. sv_pvn_nomg
    27. sv_true
  • perl 5.004_05
    1. CopyD
    2. MoveD
    3. do_binmode
    4. my_bcopy
    5. save_aelem
    6. save_helem
  • perl 5.004
    1. GIMME_V
    2. G_VOID
    3. HePV
    4. HeSVKEY_set
    5. POPu
    6. SvSetMagicSV
    7. SvSetMagicSV_nosteal
    8. SvSetSV_nosteal
    9. SvTAINTED
    10. SvTAINTED_off
    11. SvTAINTED_on
    12. block_end
    13. block_gimme
    14. block_start
    15. call_list
    16. delimcpy
    17. form
    18. gv_autoload4
    19. gv_fetchmethod_autoload
    20. hv_delayfree_ent
    21. hv_free_ent
    22. ibcmp_locale
    23. intro_my
    24. my_failure_exit
    25. newSVpvf
    26. rsignal
    27. rsignal_state
    28. save_I16
    29. save_gp
    30. share_hek
    31. start_subparse
    32. sv_catpvf
    33. sv_catpvf_mg
    34. sv_cmp_locale
    35. sv_derived_from
    36. sv_magic_portable
    37. sv_setpvf
    38. sv_setpvf_mg
    39. sv_taint
    40. sv_tainted
    41. sv_untaint
    42. sv_vcatpvf
    43. sv_vcatpvf_mg
    44. sv_vcatpvfn
    45. sv_vsetpvf
    46. sv_vsetpvf_mg
    47. sv_vsetpvfn
    48. toLOWER_LC
    49. vnewSVpvf
    50. warner
  • perl 5.003_07
    1. HeHASH
    2. HeKEY
    3. HeKLEN
    4. HeSVKEY
    5. HeSVKEY_force
    6. HeVAL
    7. cv_const_sv
    8. do_open
    9. gv_efullname3
    10. gv_fullname3
    11. hv_delete_ent
    12. hv_exists_ent
    13. hv_fetch_ent
    14. hv_iterkeysv
    15. hv_ksplit
    16. hv_store_ent
    17. my_pclose
    18. my_popen
    19. sv_gets
    20. unsharepvn

BUGS

If you find any bugs, Devel::PPPort doesn't seem to build on your system, or any of its tests fail, please send a bug report to perlbug@perl.org.

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.

SEE ALSO

See h2xs, ppport.h.