[ID 20001025.011] [PATCH] t/io/open.t perl@7369[ 7350] breaks VMS perl
[p5sagit/p5-mst-13.2.git] / pp_sys.c
index c7cbd46..28ffcda 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -802,9 +802,12 @@ PP(pp_tie)
     POPSTACK;
     if (sv_isobject(sv)) {
        sv_unmagic(varsv, how);
-       /* Croak if a self-tie is attempted */
-       if (varsv == SvRV(sv))
-           Perl_croak(aTHX_ "Self-ties are not supported");
+       /* Croak if a self-tie on an aggregate is attempted. */
+       if (varsv == SvRV(sv) &&
+           (SvTYPE(sv) == SVt_PVAV ||
+            SvTYPE(sv) == SVt_PVHV))
+           Perl_croak(aTHX_
+                      "Self-ties of arrays and hashes are not supported");
        sv_magic(varsv, sv, how, Nullch, 0);
     }
     LEAVE;