On Fri, Aug 08, 2008 at 07:32:52AM +0200, Carl Mäsak wrote:
> Jonathan (>):
> > That this means the { $_ => uc $_; } above would end up composing a Hash
> > object (unless the semicolon is meant to throw a spanner in the
> > hash-composer works?) It says you can use sub to disambiguate, but
> >
> > %ret = map sub { $_ => uc $_; }, split "", $text;
> >
> > Doesn't work since $_ isn't an automatic parameter for a sub, like it would
> > be in just a block (in the implementation, and if I understand correctly in
> > the spec too).
> 
> Out of curiosity, would this work?
> 
> %ret = map -> { $_ => uc $_; }, split "", $text;

A pointy block with nothing after the arrow is a sub with zero params,
so no, this wouldn't work.  One would need something like

    %reg = map -> $_ { $_ => uc $_; }, split "", $text;

> Or this?
> 
> %ret = map { $^foo => uc $^foo; }, split "", $text;

I'm thinking S04 probably needs some clarification/updating here.
Any block that contains a (placeholder) parameter probably needs
to remain a sub, even if the block content is a comma-separated list 
starting with a pair/hash.

Pm

Reply via email to