Subject: | Weirdness in $^H handling |
From #p5p yesterday:
<Zefram> in older Perl versions you needed to set bit 17 in $^H in order
to maintain scoping of %^H
<ribasushi> Zefram: so why in different modules do I see a different
mask (which I presume always includes bit 17)
<ribasushi> right it was autobox which has "$^H |= 0x120000; # set
HINT_LOCALIZE_HH + an unused bit to work around a %^H bug"
<ribasushi> and B::Hooks::EndOfScope with "$^H |= 0x020000;"
<ribasushi> Zefram: ok... so autobox sets bit 17, but also sets bit 20,
which according to perl.h is HINT_RE_TAINT
<ribasushi> Zefram: could this be a bug in itself?
<Zefram> ribasushi: setting HINT_RE_TAINT in autobox sounds like a bug
Could you explain your motivation behind using HINT_RE_TAINT? The
comment mentions something about a bug, but there is no SCM history to
look at :(