in reply to Ambiguous % parsing

Because method calls don't consume args without parentheses; this is a syntax error:
$obj->foo 1;
Sub calls only work without parentheses if the sub has been pre-declared (so the parser knows that 'foo' is a sub name):
foo 1; # syntax error sub foo {} foo 2; # ok

Dave.