Klaas-Jan Stol (via RT) wrote:

The parentheses surrounding the arguments are mandatory. Besides making
sequence break more conspicuous, this is necessary to distinguish this
syntax from other uses of the C<.return> directive that will be probably
deprecated.


The open issue of the 'probably deprecation' should be decided on; what
return directive is meant here that supposedly would be deprecated?
Will it? (any need?)

Yes, it will be deprecated, or at least renamed. The C<.return> directive without parentheses is an old convention for passing a single return result, and must always be sandwiched between C<.begin_return> and C<.end_return>.

And, there's another C<.return> without parentheses that performs a tail-call, invoking a sub or method reusing the same return continuation. This should also be renamed.

The only directive that should be named C<.return> is the one that returns a value or values (i.e. it's syntactic sugar for a whole collection of low-level directives/opcodes).

Allison

Reply via email to