perlsub's docs on state assignment are busted
Ricardo SIGNES [Wed, 14 Nov 2007 15:34:30 +0000 (10:34 -0500)]
Message-ID: <20071114203430.GA7191@zodiac.codesimply.com>

p4raw-id: //depot/perl@32325

pod/perlsub.pod

index fed1474..72b28f1 100644 (file)
@@ -453,11 +453,10 @@ each time the gimme_another() function is called:
 Also, since C<$x> is lexical, it can't be reached or modified by any Perl
 code outside.
 
-Be aware that assignment to C<state> variables (as in C<state $x = 42>)
-are executed every time; to initialize (or re-initialize) an undefined
-state scalar, you can use, for example, the defined-or assignment :
-
-    state $x //= initial_value();
+When combined with variable declaration, simple scalar assignment to C<state>
+variables (as in C<state $x = 42>) is executed only the first time.  When such
+statements are evaluated subsequent times, the assignment is ignored.  The
+behavior of this sort of assignment to non-scalar variables is undefined.
 
 =head3 Persistent variables with closures