summaryrefslogtreecommitdiff
path: root/pp_hot.c
diff options
context:
space:
mode:
Diffstat (limited to 'pp_hot.c')
-rw-r--r--pp_hot.c23
1 files changed, 7 insertions, 16 deletions
diff --git a/pp_hot.c b/pp_hot.c
index 6fd0441f8c..4b9ba00a09 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -100,7 +100,7 @@ PP(pp_gelem)
ref = (SV*)GvCV(gv);
break;
case 'F':
- if (strEQ(elem, "FILEHANDLE"))
+ if (strEQ(elem, "FILEHANDLE")) /* XXX deprecate in 5.005 */
ref = (SV*)GvIOp(gv);
break;
case 'G':
@@ -111,6 +111,10 @@ PP(pp_gelem)
if (strEQ(elem, "HASH"))
ref = (SV*)GvHV(gv);
break;
+ case 'I':
+ if (strEQ(elem, "IO"))
+ ref = (SV*)GvIOp(gv);
+ break;
case 'N':
if (strEQ(elem, "NAME"))
sv = newSVpv(GvNAME(gv), GvNAMELEN(gv));
@@ -182,19 +186,6 @@ PP(pp_unstack)
return NORMAL;
}
-PP(pp_seq)
-{
- dSP; tryAMAGICbinSET(seq,0);
- {
- dPOPTOPssrl;
- bool eq = ((op->op_private & OPpLOCALE)
- ? (sv_cmp_locale(left, right) == 0)
- : sv_eq(left, right));
- SETs( eq ? &sv_yes : &sv_no );
- RETURN;
- }
-}
-
PP(pp_concat)
{
dSP; dATARGET; tryAMAGICbin(concat,opASSIGN);
@@ -835,7 +826,7 @@ play_it_again:
else if (!multiline) {
if (*SvPVX(pm->op_pmshort) != *s
|| (pm->op_pmslen > 1
- && memcmp(SvPVX(pm->op_pmshort), s, pm->op_pmslen)))
+ && memNE(SvPVX(pm->op_pmshort), s, pm->op_pmslen)))
goto nope;
}
if (!rx->naughty && --BmUSEFUL(pm->op_pmshort) < 0) {
@@ -1408,7 +1399,7 @@ PP(pp_subst)
else if (!multiline) {
if (*SvPVX(pm->op_pmshort) != *s
|| (pm->op_pmslen > 1
- && memcmp(SvPVX(pm->op_pmshort), s, pm->op_pmslen)))
+ && memNE(SvPVX(pm->op_pmshort), s, pm->op_pmslen)))
goto nope;
}
if (!rx->naughty && --BmUSEFUL(pm->op_pmshort) < 0) {