The following program works fine in pugs r17041 (which is the rev of
/usr/bin/pugs on feather):

my $r=\{say $x+1};
my $x=2;
$r();

With r17041, this gives 3;
However, on the latest pugs (r17615 or later), it gives an error:
***
    Unexpected "$r"
    expecting "=", "::", context, ":" or "("
    Variable "$x" requires predeclaration or explicit package name
    at pugs_var_bug.p6 line 1, column 4

It would think that the r17041 result is correct.
-------
There is also a scoping issue in r17615:

my $v=1;
if ($v) {
        map ->$v {$v},(2);
} else {
        $v;
}

With r17041, this gives 2; With r17615 it gives an error:
***
    Unexpected end of input
    expecting "::"
    Variable "$v" requires predeclaration or explicit package name
    at pugs_scoping_bug.p6 line 6, column 15

Now, if I change $v to $x in the pointy sub, it works fine.
-----

Both  seems like bugs to me, but can someone confirm that?

Thanks,

Wim


-- 
If it's pointless, what's the point?
If there is a point to it, what's the point?
(Tibor Fischer, "The Thought Gang")

Reply via email to