[SP-pm] variável $^H no Perl 5.16
Stanislaw Pusep
creaktive at gmail.com
Thu May 31 07:09:26 PDT 2012
Bom dia, senhores.
A referência oficial ao $^H, no perlvar:
"WARNING: This variable is strictly for internal use only. Its
availability, behavior, and contents are subject to change without notice."
Mais claro, impossível.
Ainda assim, estou tentando entender o que mudou de lá pra cá:
$ perl -e 'BEGIN { $^H{feature_say} = 1; }; say $^V'
v5.14.2
$ perl -e 'BEGIN { $^H{feature_say} = 1; }; say $^V'
Can't locate object method "say" via package "version" at -e line 1.
Aparentemente, não funciona mais... Mas não é bem assim.
Fuçando um pouco, descobri que precisa do tal de HINT_FEATURE_MASK,
introduzido em 5.15.7 (
https://metacpan.org/diff/file/?target=BINGOS/perl-5.15.7/lib/feature.pm&source=FLORA/perl-5.14.2/lib/feature.pm
)
perldelta refere à definição do valor de HINT_FEATURE_MASK em perl.h:
#define HINT_FEATURE_MASK 0x1c000000 /* 3 bits for feature bundles */
Então, para "consertar" o código, basta fazer:
$ perl -e 'BEGIN { $^H |= 0x1c000000; $^H{feature_say} = 1; }; say $^V'
v5.16.0
Infelizmente, para mim isso é "black magic". O que exatamente esse valor
faz? Por que não precisava dele antes e agora precisa?
ABS()
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20120531/682fba37/attachment.html>
More information about the SaoPaulo-pm
mailing list