> Why with `my' I do need them? Why don't these behave the same?

Because the precedence is different.
Remember, 'my' is a lexical construct.
It does not "return" a value, and it does not
take "arguments" -- not in the runtime sense.
It applies only to literal variable symbols.
It is meaningless (and illegal) to write my(6) or my(foo($x)).
You're telling the compiler something about the variable.
In effect, you're placing a TAG on the variable.
In p6 attribute terminology, you could think of
it as something like
        $x:lexical, $y:lexical, $z:lexical
Such tags, or attributes, don't naturally distribute.
And it doesn't make much sense (to me, at least) to make
such a declaration maximally distributive, instead of
minimally distributive as it is now.

-- 
John Porter

Reply via email to