Because, IMO, functions take values (even if they are references or aliases), do something when called at runtime, and return zero or more values.
At runtime, It takes the name of a variable, allocates it* and returns the named variable as an lvalue.
* — The implementation differs, but this is the intent of my and it should be the perceived effect.
return isn't a function either
It is a function. It's not a function in the functional programming sense — it has side-effects — but that's not relevant here.
More specifically, perlfunc documents named operators, and return is one.
If you're going to add colons, why not semi-colons? Braces?
Semicolons can't appear in expressions. As for braces, both constructs such as do {} and the anon hash contructor *are* mentioned in perlop.
In reply to Re^6: Unexpected parsing
by ikegami
in thread Unexpected parsing
by JadeNB
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |