This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for proto parsing changes
authorFather Chrysostomos <sprout@cpan.org>
Sat, 13 Jul 2013 19:06:24 +0000 (12:06 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Sat, 13 Jul 2013 23:44:31 +0000 (16:44 -0700)
pod/perldelta.pod

index 2a301cd..888c5f4 100644 (file)
@@ -25,7 +25,20 @@ XXX New core language features go here.  Summarize user-visible core language
 enhancements.  Particularly prominent performance optimisations could go
 here, but most should go in the L</Performance Enhancements> section.
 
-[ List each enhancement as a =head2 entry ]
+=head2 More consistent prototype parsing
+
+Multiple semicolons in subroutine prototypes have long been tolerated and
+treated as a single semicolon.  There was one case where this did not
+happen.  A subroutine whose prototype begins with "*" or ";*" can affect
+whether a bareword is considered a method name or sub call.  This now
+applies also to ";;;*".
+
+Whitespace has long been allowed inside subroutine prototypes, so
+C<sub( $ $ )> is equivalent to C<sub($$)>.  But it was stripped when the
+subroutine was parse.  Hence, whitespace was I<not> allowed in prototypes
+set by C<Scalar::Util::set_prototype>.  Now it is permitted, and the parser
+no longer strips whitespace.  This means C<prototype &mysub> returns the
+original prototype, whitespace and all.
 
 =head1 Security