return pp_oct();
}
+PP(pp_pop)
+{
+ return pp_shift();
+}
+
U8 *
Perl_uvuni_to_utf8(pTHX_ U8 *d, UV uv)
{
MEMBER_TO_FPTR(Perl_pp_anonhash),
MEMBER_TO_FPTR(Perl_pp_splice),
MEMBER_TO_FPTR(Perl_pp_push),
- MEMBER_TO_FPTR(Perl_pp_pop),
+ MEMBER_TO_FPTR(Perl_pp_shift), /* Perl_pp_pop */
MEMBER_TO_FPTR(Perl_pp_shift),
MEMBER_TO_FPTR(Perl_pp_unshift),
MEMBER_TO_FPTR(Perl_pp_sort),
Perl_pp_print => ['say'],
Perl_pp_index => ['rindex'],
Perl_pp_oct => ['hex'],
+ Perl_pp_shift => ['pop'],
);
while (my ($func, $names) = splice @raw_alias, 0, 2) {
RETURN;
}
-PP(pp_pop)
-{
- dVAR;
- dSP;
- AV * const av = (AV*)POPs;
- SV * const sv = av_pop(av);
- if (AvREAL(av))
- (void)sv_2mortal(sv);
- PUSHs(sv);
- RETURN;
-}
-
PP(pp_shift)
{
dVAR;
dSP;
AV * const av = (AV*)POPs;
- SV * const sv = av_shift(av);
+ SV * const sv = PL_op->op_type == OP_SHIFT ? av_shift(av) : av_pop(av);
EXTEND(SP, 1);
if (!sv)
RETPUSHUNDEF;