Perhaps we should disallow “unit” with -e?

> On 28 Mar 2016, at 20:18, Trey Ethan Harris <t...@cpan.org> wrote:
> 
> No, see S06-routines.pod:
> 
>     As with module and class declarations, a sub declared
>     with the C<unit> declarator (and ending in semicolon) is allowed at the 
> outermost
>     file scope if it is the
>     first such declaration, in which case the rest of the file is the body:
>     
>         unit sub MAIN ($directory, :$verbose, *%other, *@filenames);
>         for @filenames { ... }
>     
>     This form is allowed only for simple subs named C<MAIN> that are intended
>     to be run from the command line.
> 
> 
> On Sat, Mar 26, 2016 at 7:02 AM Elizabeth Mattijsen via RT 
> <perl6-bugs-follo...@perl.org> wrote:
> unit sub ???
> 
> I thought that unit was only supposed to be followed by a package like 
> declaration??
> 
> 
> > On 26 Mar 2016, at 02:10, Trey Harris (via RT) 
> > <perl6-bugs-follo...@perl.org> wrote:
> >
> > # New Ticket Created by  Trey Harris
> > # Please include the string:  [perl #127785]
> > # in the subject line of all future correspondence about this issue.
> > # <URL: https://rt.perl.org/Ticket/Display.html?id=127785 >
> >
> >
> > Example:
> >
> > % perl6 -e 'sub MAIN ($x where { $^x > 1 } ) { say "big" }' 4
> > big
> > % perl6 -e 'sub MAIN ($x where { $^x > 1 } ) { say "big" }' 0
> > Usage:
> >  -e '...' <x>
> > % perl6 -e 'unit sub MAIN ($x where { $^x > 1 } );  say "big"'  4
> > ===SORRY!===
> > Expression needs parens to avoid gobbling block
> > at -e:1
> > ------> unit sub MAIN ($x where { $^x > 1 }⏏ );  say "big"
> > Missing block (apparently claimed by expression)
> > at -e:1
> > ------> unit sub MAIN ($x where { $^x > 1 } );⏏  say "big"
> >
> 
> 


Reply via email to