On Mon, Nov 26, 2007 at 04:01:37PM +0200, Allison Randal wrote:
> Patrick R.Michaud (via RT) wrote:
> >
> >This isn't a super-huge priority at the moment... for the
> >time being we can simply have PCT not attach any :outer
> >flags to methods.  But eventually we'll probably want to
> >have this working.
> 
> Can you give me an HLL use case, so we get the implementation right? A 
> .sub marked with :outer is one that's lexically scoped inside another 
> .sub. So, a method marked with :outer is a method that's defined within 
> another method/sub. Something like:
> 
>   method foo ($a, $b, $c) {
>     ...
>     method bar ($x, $y, $z) {
>       ...
>     }
>     ...
>   }
> 
> Is that what you're looking for?

In Perl 6:

    class ABC {
        my $x = 0;

        method foo() {
            $x = $x + 1;
        }

        method bar() {
            say $x;
        }
    }

$x is lexically scoped, which means that methods foo and bar 
need to be marked with the class block as their :outer scopes.

Similar considerations may apply for inner classes, where we
end up with methods (of an inner class) inside of other blocks.

Pm

Reply via email to