ENTER;
Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT,
newSVpvs("File::Glob"), NULL, NULL, NULL);
- gv = gv_fetchpvs("CORE::GLOBAL::glob", 0, SVt_PVCV);
- glob_gv = gv_fetchpvs("File::Glob::csh_glob", 0, SVt_PVCV);
- GvCV(gv) = GvCV(glob_gv);
- SvREFCNT_inc_void(MUTABLE_SV(GvCV(gv)));
- GvIMPORTED_CV_on(gv);
+ if((glob_gv = gv_fetchpvs("File::Glob::csh_glob", 0, SVt_PVCV))) {
+ gv = gv_fetchpvs("CORE::GLOBAL::glob", 0, SVt_PVCV);
+ GvCV(gv) = GvCV(glob_gv);
+ SvREFCNT_inc_void(MUTABLE_SV(GvCV(gv)));
+ GvIMPORTED_CV_on(gv);
+ }
LEAVE;
}
#endif /* PERL_EXTERNAL_GLOB */
}
require 'test.pl';
-plan( tests => 15 );
+plan( tests => 16 );
@oops = @ops = <op/*>;
undef %File::Glob::;
++$i;
}
-cmp_ok($i,'==',2,'remore File::Glob stash');
+cmp_ok($i,'==',2,'remove File::Glob stash');
+
+# a more sinister version of the same test (crashes from 5.8 to 5.13.1)
+{
+ undef %File::Glob::;
+ local %CORE::GLOBAL::;
+ eval "<.>";
+ ok(!length($@),"remove File::Glob stash *and* CORE::GLOBAL::glob");
+}
# ... while ($var = glob(...)) should test definedness not truth