For example you cannot force little-endianness on a type that
is inside a big-endian group.
-=item Can't use keyword '%s' as a label
-
-(F) You attempted to use a reserved keyword, such as C<print> or C<BEGIN>,
-as a statement label. This is disallowed since Perl 5.11.0.
-
=item Can't use "my %s" in sort comparison
(F) The global variables $a and $b are reserved for sort comparisons.
These tasks would need C knowledge, and knowledge of how the interpreter works,
or a willingness to learn.
+=head2 forbid labels with keyword names
+
+Currently C<goto keyword> "computes" the label value:
+
+ $ perl -e 'goto print'
+ Can't find label 1 at -e line 1.
+
+It would be nice to forbid labels with keyword names, to avoid confusion.
+
=head2 truncate() prototype
The prototype of truncate() is currently C<$$>. It should probably
not eval "y:echo: eq y|echo|" and
eval "y:echo:ohce: >= 0");
-ok 23, (not eval "AUTOLOAD:1" and
+ok 23, (eval "AUTOLOAD:1" and
not eval "AUTOLOAD:echo: eq AUTOLOAD|echo|" and
not eval "AUTOLOAD:echo:ohce: >= 0");
-ok 24, (not eval "and:1" and
+ok 24, (eval "and:1" and
not eval "and:echo: eq and|echo|" and
not eval "and:echo:ohce: >= 0");
-ok 25, (not eval "alarm:1" and
+ok 25, (eval "alarm:1" and
not eval "alarm:echo: eq alarm|echo|" and
not eval "alarm:echo:ohce: >= 0");
/* Is this a label? */
if (!anydelim && PL_expect == XSTATE
&& d < PL_bufend && *d == ':' && *(d + 1) != ':') {
- if (tmp)
- Perl_croak(aTHX_ "Can't use keyword '%s' as a label", PL_tokenbuf);
s = d + 1;
pl_yylval.pval = CopLABEL_alloc(PL_tokenbuf);
CLINE;