Damian Conway wrote:
> Though leaving optimization in the hands of the programmer
> is generally a Bad Idea.

That doesn't sound like a Perl slogan.

> It's also a matter of syntactic consistency. It has to be := for
> "inlined" bindings (i.e. rx/ $name:=<ident> /) because otherwise
> we make = meta (which is *not* a good idea). So it probably should be
> := for explicit C<let>s as well.

If "let" only works on bindings, it really bites into the
expressiveness of the language. For example, the "natural" way
to skip text within a match is to do something like:

   / (\w+) \d+ (\w+) { let $1 _= $2; let $2 = undef } /

This feels natural too:

   / (\w+ \d+ \w+) { let $1 =~ s/\d+// } /

Binding might be really fast for some implementations of Perl,
but slow for others. Just like string eval may be impossible in
some, but trivial in others.

- Ken

Reply via email to