From: Leopold Toetsch <[EMAIL PROTECTED]>
   Date: Sat, 3 Dec 2005 22:50:00 +0100


   On Dec 3, 2005, at 20:15, Bob Rogers wrote:

   > Excellent; thank you -- and for the other fix especially.  But now I
   > notice that this is what happens if you put the inner sub first:

   Yes. That's what I've written in:

   http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/ 
   812c0e2a6afc2c92/03451b76d036f5c0?q=outer+order&rnum=1#03451b76d036f5c0

   Searched in perl.perl6.internals     outer order

   leo

Sorry; I remember reading this now.  Please accept the following small
patch to close the documentation gap.

                                        -- Bob

Index: docs/pdds/pdd20_lexical_vars.pod
===================================================================
--- docs/pdds/pdd20_lexical_vars.pod    (revision 10322)
+++ docs/pdds/pdd20_lexical_vars.pod    (working copy)
@@ -223,17 +223,21 @@
       return &a;
    }
 
-The &foo subroutiine is the outer subroutine of &a, but it is not the caller
+The &foo subroutine is the outer subroutine of &a, but it is not the caller
 of &a.
 
 In the above example, the definition of the Parrot subroutine implementing &a
 must include a notation that it is textually enclosed within &foo.  This is a
 static attribute of a Subroutine, set at compile time and never changed
 thereafter.  (Unless you're evil, or Damian.  But I repeat myself.)  This
-information is given through a ":outer()" subroutine attribute, e.g.:
+information is given through an ":outer()" subroutine attribute, e.g.:
 
     .sub a :outer(foo)
 
+Note that the "foo" sub B<must> be compiled first; in other words, "foo" must
+appear before "a" in the source text.  Compilers can easily do this via
+preorder traversal of lexically-nested subs.
+
 =head1 REQUIRED INTERFACES: LEXPAD, LEXINFO, CLOSURE
 
 =head2 LexInfo

Reply via email to