It was not attaching magic to the array, preventing subsequent changes
to the array from updating isa caches.
if (!*where)
*where = newSV_type(type);
+ if (type == SVt_PVAV && GvNAMELEN(gv) == 3
+ && strnEQ(GvNAME(gv), "ISA", 3))
+ sv_magic(*where, (SV *)gv, PERL_MAGIC_isa, NULL, 0);
return gv;
}
use strict;
use warnings;
-BEGIN { require q(./test.pl); } plan(tests => 53);
+BEGIN { require q(./test.pl); } plan(tests => 54);
require mro;
ok !Gwythaint->isa("Fantastic::Creature"),
'obliterating @ISA via glob assignment';
}
+
+{
+ # Autovivifying @ISA via @{*ISA}
+ undef *fednu::ISA;
+ @{*fednu::ISA} = "pyfg";
+ ok +fednu->isa("pyfg"), 'autovivifying @ISA via *{@ISA}';
+}