+#ifdef PERL_HASH_RANDOMIZE_KEYS
+#ifdef USE_PERL_PERTURB_KEYS
+PERLVARI(I, hash_rand_bits_enabled, U8, 1) /* used to randomize hash stuff 0 == no-random, 1 == random, 2 == determinsitic */
+#endif
+PERLVARI(I, hash_rand_bits, UV, 0) /* used to randomize hash stuff */
+#endif
+PERLVAR(I, strtab, HV *) /* shared string table */
+
+/* Fields used by magic variables such as $@, $/ and so on */
+PERLVAR(I, curpm, PMOP *) /* what to do \ interps in REs from */
+
+PERLVAR(I, tainting, bool) /* doing taint checks */
+PERLVAR(I, tainted, bool) /* using variables controlled by $< */
+PERLVAR(I, delaymagic, U16) /* ($<,$>) = ... */
+PERLVAR(I, localizing, U8) /* are we processing a local() list? */
+PERLVAR(I, in_eval, U8) /* trap "fatal" errors? */
+/*
+
+=for apidoc mn|bool|PL_dowarn
+
+The C variable which corresponds to Perl's $^W warning variable.
+
+=cut
+*/
+
+PERLVAR(I, dowarn, U8)
+
+#if defined (PERL_UTF8_CACHE_ASSERT) || defined (DEBUGGING)
+# define PERL___I -1
+#else
+# define PERL___I 1
+#endif
+PERLVARI(I, utf8cache, I8, PERL___I) /* Is the utf8 caching code enabled? */
+#undef PERL___I
+
+
+/* Stashes */
+PERLVAR(I, defstash, HV *) /* main symbol table */
+PERLVAR(I, curstash, HV *) /* symbol table for current package */
+
+PERLVAR(I, curcop, COP *)
+PERLVAR(I, curstack, AV *) /* THE STACK */
+PERLVAR(I, curstackinfo, PERL_SI *) /* current stack + context */
+PERLVAR(I, mainstack, AV *) /* the stack when nothing funny is
+ happening */
+
+/* memory management */
+PERLVAR(I, sv_count, IV) /* how many SV* are currently allocated */
+PERLVAR(I, sv_objcount, IV) /* DEPRECATED AND UNMAINTAINED.
+ * Will be removed in Perl 5.20.
+ * Used to be: how many objects are currently allocated. */
+
+PERLVAR(I, sv_root, SV *) /* storage for SVs belonging to interp */
+PERLVAR(I, sv_arenaroot, SV *) /* list of areas for garbage collection */
+
+/* fake PMOP that PL_curpm points to while in (?{}) so $1 et al are visible */
+PERLVARI(I, reg_curpm, PMOP*, NULL)
+
+/* the currently active slab in a chain of slabs of regmatch states,
+ * and the currently active state within that slab. This stack of states
+ * is shared amongst re-entrant calls to the regex engine */
+
+PERLVARI(I, regmatch_slab, regmatch_slab *, NULL)
+PERLVAR(I, regmatch_state, regmatch_state *)
+
+PERLVAR(I, comppad, PAD *) /* storage for lexically scoped temporaries */
+
+/*
+=for apidoc Amn|SV|PL_sv_undef
+This is the C<undef> SV. Always refer to this as C<&PL_sv_undef>.
+
+=for apidoc Amn|SV|PL_sv_no
+This is the C<false> SV. See C<PL_sv_yes>. Always refer to this as
+C<&PL_sv_no>.
+
+=for apidoc Amn|SV|PL_sv_yes
+This is the C<true> SV. See C<PL_sv_no>. Always refer to this as
+C<&PL_sv_yes>.
+
+=cut
+*/
+
+PERLVAR(I, sv_undef, SV)
+PERLVAR(I, sv_no, SV)
+PERLVAR(I, sv_yes, SV)