This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
integrate changes#2254,2259,2335,2345,2348,2361,2368,2380 from mainline
[perl5.git] / gv.c
diff --git a/gv.c b/gv.c
index c5ee79a..a4b0b43 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -851,7 +851,8 @@ newIO(void)
     SvREFCNT(io) = 1;
     SvOBJECT_on(io);
     iogv = gv_fetchpv("FileHandle::", FALSE, SVt_PVHV);
-    if (!iogv)
+    /* unless exists($main::{FileHandle}) and defined(%main::FileHandle::) */
+    if (!(iogv && GvHV(iogv) && HvARRAY(GvHV(iogv))))
       iogv = gv_fetchpv("IO::Handle::", TRUE, SVt_PVHV);
     SvSTASH(io) = (HV*)SvREFCNT_inc(GvHV(iogv));
     return io;