<div>Bom dia, senhores.</div><div>A referência oficial ao $^H, no perlvar:</div><div>"WARNING: This variable is strictly for internal use only. Its availability, behavior, and contents are subject to change without notice."</div>


<div>Mais claro, impossível.</div><div>Ainda assim, estou tentando entender o que mudou de lá pra cá:</div><div><br></div><div>$ perl -e 'BEGIN { $^H{feature_say} = 1; }; say $^V'</div><div>v5.14.2</div><div><br>

</div>
<div><div>$ perl -e 'BEGIN { $^H{feature_say} = 1; }; say $^V'</div><div>Can't locate object method "say" via package "version" at -e line 1.</div></div><div><br></div><div>Aparentemente, não funciona mais... Mas não é bem assim.</div>


<div>Fuçando um pouco, descobri que precisa do tal de HINT_FEATURE_MASK, introduzido em 5.15.7 (<a href="https://metacpan.org/diff/file/?target=BINGOS/perl-5.15.7/lib/feature.pm&source=FLORA/perl-5.14.2/lib/feature.pm">https://metacpan.org/diff/file/?target=BINGOS/perl-5.15.7/lib/feature.pm&source=FLORA/perl-5.14.2/lib/feature.pm</a>)</div>

<div><div><br></div><div>perldelta refere à definição do valor de HINT_FEATURE_MASK em perl.h:</div><div>#define HINT_FEATURE_MASK       0x1c000000 /* 3 bits for feature bundles */</div></div><div><br></div><div>Então, para "consertar" o código, basta fazer:</div>

<div><br></div><div>$ perl -e 'BEGIN { $^H |= 0x1c000000; $^H{feature_say} = 1; }; say $^V'</div><div>v5.16.0</div><div><br></div><div>Infelizmente, para mim isso é "black magic". O que exatamente esse valor faz? Por que não precisava dele antes e agora precisa?</div>

<div><br></div>ABS()<br>
<br>