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"
> >
>
>