Note that Larry has clarified the reasons for the Perl 6 design on
Nicholas Clark [Thu, 6 Dec 2007 10:48:01 +0000 (10:48 +0000)]
state assignments.

p4raw-id: //depot/perl@32581

pod/perltodo.pod

index 9e66a83..8b0ce62 100644 (file)
@@ -672,12 +672,12 @@ Currently this is illegal:
 
     state ($a, $b) = foo(); 
 
-The current Perl 6 design is that C<state ($a) = foo();> and
-C<(state $a) = foo();> have different semantics, which is tricky to implement
-in Perl 5 as currently the produce the same opcode trees. It would be useful
-to clarify that the Perl 6 design is firm, and then implement the necessary
-code in Perl 5. There are comments in C<Perl_newASSIGNOP()> that show the
-code paths taken by various assignment constructions involving state variables.
+In Perl 6, C<state ($a) = foo();> and C<(state $a) = foo();> have different
+semantics, which is tricky to implement in Perl 5 as currently the produce
+the same opcode trees. The Perl 6 design is firm, so it would be good to
+implement the  necessary code in Perl 5. There are comments in
+C<Perl_newASSIGNOP()> that show the code paths taken by various assignment
+constructions involving state variables.
 
 =head2 Implement $value ~~ 0 .. $range