Under threads, strict vars was not respecting assignment to a package
with a null in its name if the name of the package assigned from was
equal to the prefix of the destination package up to the null.
no warnings;
eval q/$dweck/;
EXPECT
+########
+# [perl #112316] strict vars getting confused by nulls
+# Assigning to a package whose name contains a null
+BEGIN { *Foo:: = *{"foo\0bar::"} }
+package foo;
+*Foo::bar = [];
+use strict;
+eval 'package Foo; @bar = 1' or die;
+EXPECT
}
else
return (stashpv == name
- || strEQ(stashpv, name));
+ || ((STRLEN)HEK_LEN(HvNAME_HEK(hv)) == strlen(stashpv)
+ && strEQ(stashpv, name)));
/*NOTREACHED*/
return FALSE;
}