Am 11.07.2012 09:55, schrieb Gabor Szabo:
I wonder if the first one is a bug:


use v6;
my @x = (
        { a => 1}
        {b => 2 }
);
say @x.perl;

prints      Array.new({"b" => 2})

This is actually correct. It parses as

my @x = ( {a => 1}; {b => 2} );

Which is roughly the same as

my @x = ( do {  {a => 1}; {b => 2} });

In general, a semicolon can be omitted after a closing bracket before the end of the line. That's why you don't need a semicolon after

if $condition {
   say 'something';
}


Almost the same code:

use v6;
my @x = (
        { a => 1} {b => 2 }
);
say @x.perl;

===SORRY!===
Malformed initializer

Niezca has a better error message:

Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?)


Cheers,
Moritz

Reply via email to