package feature;
-our $VERSION = '1.30';
+our $VERSION = '1.33';
our %feature = (
fc => 'feature_fc',
$feature_bundle{"5.16"} = $feature_bundle{"5.15"};
$feature_bundle{"5.17"} = $feature_bundle{"5.15"};
$feature_bundle{"5.18"} = $feature_bundle{"5.15"};
+$feature_bundle{"5.19"} = $feature_bundle{"5.15"};
+$feature_bundle{"5.20"} = $feature_bundle{"5.15"};
$feature_bundle{"5.9.5"} = $feature_bundle{"5.10"};
-my %experimental = (
- lexical_subs => 1,
-);
our $hint_shift = 26;
our $hint_mask = 0x1c000000;
=head2 The 'lexical_subs' feature
B<WARNING>: This feature is still experimental and the implementation may
-change in future versions of Perl. For this reason, F<feature.pm> will
-warn when you enable the feature, unless you have explicitly disabled the
+change in future versions of Perl. For this reason, Perl will
+warn when you use the feature, unless you have explicitly disabled the
warning:
- no warnings "experimental:lexical_subs";
+ no warnings "experimental::lexical_subs";
This enables declaration of subroutines via C<my sub foo>, C<state sub foo>
and C<our sub foo> syntax. See L<perlsub/Lexical Subroutines> for details.
:5.18 say state switch unicode_strings
unicode_eval evalbytes current_sub fc
+ :5.20 say state switch unicode_strings
+ unicode_eval evalbytes current_sub fc
+
The C<:default> bundle represents the feature set that is enabled before
any C<use feature> or C<no feature> declaration.
if ($import) {
$^H{$feature{$name}} = 1;
$^H |= $hint_uni8bit if $name eq 'unicode_strings';
- if ($experimental{$name}) {
- require warnings;
- warnings::warnif("experimental:$name",
- "The $name feature is experimental");
- }
} else {
delete $^H{$feature{$name}};
$^H &= ~ $hint_uni8bit if $name eq 'unicode_strings';