=for apidoc Amn|U32|GIMME_V
The XSUB-writer's equivalent to Perl's C<wantarray>. Returns C<G_VOID>,
C<G_SCALAR> or C<G_ARRAY> for void, scalar or list context,
-respectively.
+respectively. See L<perlcall> for a usage example.
=for apidoc Amn|U32|GIMME
A backward-compatible version of C<GIMME_V> which can only return
: G_SCALAR) \
: dowantarray())
-/* NOTE: OP_NEXTSTATE, OP_DBSTATE, and OP_SETSTATE (i.e. COPs) carry lower
+/* NOTE: OP_NEXTSTATE and OP_DBSTATE (i.e. COPs) carry lower
* bits of PL_hints in op_private */
/* Private for lvalues */
#define OPpDEREF_AV 32 /* Want ref to AV. */
#define OPpDEREF_HV 64 /* Want ref to HV. */
#define OPpDEREF_SV (32|64) /* Want ref to SV. */
+/* Private for OP_RV2SV, OP_RV2AV, OP_RV2AV */
+#define OPpDEREFed 4 /* prev op was OPpDEREF */
/* OP_ENTERSUB only */
#define OPpENTERSUB_DB 16 /* Debug subroutine. */
#define OPpENTERSUB_HASTARG 32 /* Called from OP tree. */
/* Private for OP_DELETE */
#define OPpSLICE 64 /* Operating on a list of keys */
+/* Also OPpLVAL_INTRO (128) */
/* Private for OP_EXISTS */
#define OPpEXISTS_SUB 64 /* Checking for &sub, not {} or []. */
#define OPpSORT_QSORT 32 /* Use quicksort (not mergesort) */
#define OPpSORT_STABLE 64 /* Use a stable algorithm */
+/* Private for OP_REVERSE */
+#define OPpREVERSE_INPLACE 8 /* reverse in-place (@a = reverse @a) */
+
/* Private for OP_OPEN and OP_BACKTICK */
#define OPpOPEN_IN_RAW 16 /* binmode(F,":raw") on input fh */
#define OPpOPEN_IN_CRLF 32 /* binmode(F,":crlf") on input fh */
#define PMf_GLOBAL 0x00002000 /* pattern had a g modifier */
#define PMf_CONTINUE 0x00004000 /* don't reset pos() if //g fails */
#define PMf_EVAL 0x00008000 /* evaluating replacement as expr */
+#define PMf_NONDESTRUCT 0x00010000 /* Return substituted string instead
+ of modifying it. */
/* The following flags have exact equivalents in regcomp.h with the prefix RXf_
* which are stored in the regexp->extflags member. If you change them here,
#endif
/* flags used by Perl_load_module() */
-#define PERL_LOADMOD_DENY 0x1
-#define PERL_LOADMOD_NOIMPORT 0x2
-#define PERL_LOADMOD_IMPORT_OPS 0x4
+#define PERL_LOADMOD_DENY 0x1 /* no Module */
+#define PERL_LOADMOD_NOIMPORT 0x2 /* use Module () */
+#define PERL_LOADMOD_IMPORT_OPS 0x4 /* use Module (...) */
#if defined(PERL_IN_PERLY_C) || defined(PERL_IN_OP_C)
#define ref(o, type) doref(o, type, TRUE)
cv_ckproto_len((cv), (gv), (p), (p) ? strlen(p) : 0)
#endif
+#ifdef PERL_CORE
+# define my(o) my_attrs((o), NULL)
+#endif
+
#ifdef USE_REENTRANT_API
#include "reentr.h"
#endif
struct madprop {
MADPROP* mad_next;
- const void *mad_val;
+ void *mad_val;
U32 mad_vlen;
/* short mad_count; */
char mad_key;