Por que esse operador de feed Perl 6 é uma “declaração falsa”?

Eu peguei este exemplo deDia 10 - Operadores de feeds do Calendário do Advento do Perl 6 2010 com a ligeira mudança de.uc para o.ucfirst isso não está mais lá:

my @rakudo-people = <scott patrick carl moritz jonathan jerry stephen>;
@rakudo-people
    ==> grep { /at/ } ==> map { .uc } ==> my @who-it's-at;
say ~@who-it's-at;

Escrevo de maneira um pouco diferente com alguns espaços em branco adicionais:

my @rakudo-people = <scott patrick carl moritz jonathan jerry stephen>;
@rakudo-people
    ==> grep { /at/ }
    ==> map { .uc } ==> my @who-it's-at;
say ~@who-it's-at;

Agora é uma "declaração falsa":

===SORRY!=== Error while compiling ...
Bogus statement
------>         ==> grep { /at/ }⏏<EOL>
expecting any of:
    postfix
    prefix
    statement end
    term

Este não é um problema apenas com este exemplo. Alguns exemplos nos documentos atuais podem exibir o mesmo comportamento.

Se eu adicionar umpouco espaço até o final da linha incorreta, funciona novamente:

my @rakudo-people = <scott patrick carl moritz jonathan jerry stephen>;
@rakudo-people
    ==> grep { /at/ } \
    ==> map { .uc } ==> my @who-it's-at;
say ~@who-it's-at;

Curiosamente, um comentário no final dessa linha não funciona. Eu teria pensado que teria comido o espaço em branco ofensivo.

ooperador de alimentação diz:

No caso de rotinas / métodos que usam um único argumento ou onde o primeiro argumento é um bloco, geralmente é necessário que você chame entre parênteses

Isso funciona:

my @rakudo-people = <scott patrick carl moritz jonathan jerry stephen>;
@rakudo-people
    ==> grep( { /at/ } )
    ==> map { .uc } ==> my @who-it's-at;
say ~@who-it's-at;

Mas por que isso não foi um problema na primeira forma? O que o espaço em branco está fazendo aqui? E que situações estão incluídas no "frequentemente necessário"?

questionAnswers(1)

yourAnswerToTheQuestion