Thanks for the valuable feedback, Hugo.
As usual, the default response is unqualified agreement.


None of the operator examples show a typed return value. Can they?
Should they?

Yes. And yes. And now one does. ;-)



:Method invocants are specified in the parameter list, with a colon
:terminating the list of invocants:

Hmm, is "method" intended to refer to "method, submethod or multimethod"
here? We could do with a (different) name to refer to that collection.

Agreed.



:=item C<FIRST>/C<LAST>/C<NEXT>/C<KEEP>/C<UNDO>/etc.
:
:Mark blocks that are to be unconditionally executed before/after
:the subroutine's C<do> block. The return values of these blocks
:are ignored.

s/unconditionally/conditionally/? Not sure.

Yes. I originally only had FIRST and LAST.



:Another way to modify the behavior of temporized code structures
:is to give them a C<TEMP> block:

It isn't clear to me from this or the example what the effect of
the TEMP block is.

Welcome to the club! ;-) I'll endeavour to explain the semantics better.


:The standard C<pair I<LIST>> function is equivalent to C<map {$^k=>$^v} I<LIST>>

That looks wrong: surely C< {$^k=>$^v} > must be parsed as a hashref here,
and therefore (I guess) give a syntax error?

I don't think so. The rule is that the top level construct in the braces has to be a *list* for the braces to be a hash. C<$^k=>$^v> isn't a list (though C<$^k=>$^v,> would be). Besides, the presence of placeholders means the block must be a closure.



-        print $text while $count-->0
+        print $text while $count-- > 0

No way! That's my very favorite Perl pun! ;-)



Thanks again,


Damian





Reply via email to