bug 20010423.002
Robin Houston [Mon, 23 Apr 2001 13:12:30 +0000 (14:12 +0100)]
Message-ID: <20010423131230.A20074@puffinry.freeserve.co.uk>

p4raw-id: //depot/perl@9789

pp.c

diff --git a/pp.c b/pp.c
index 6730f29..d5e4dd7 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -3563,7 +3563,9 @@ PP(pp_hslice)
        while (++MARK <= SP) {
            SV *keysv = *MARK;
            SV **svp;
-           I32 preeminent = SvRMAGICAL(hv) ? 1 : hv_exists_ent(hv, keysv, 0);
+           I32 preeminent = SvRMAGICAL(hv) ? 1 :
+                               realhv ? hv_exists_ent(hv, keysv, 0)
+                                      : avhv_exists_ent((AV*)hv, keysv, 0);
            if (realhv) {
                HE *he = hv_fetch_ent(hv, keysv, lval, 0);
                svp = he ? &HeVAL(he) : 0;