Smylers wrote:
Jonathan Lang writes:
> Translating this to perl 6, I'm hoping that perl6 is smart enough to
> let me say:
>
> s(pattern) { doit() }
>
> Instead of
>
> s(pattern) { { doit() } }
That special case is nasty if you don't know about it -- you
inadvertently execute as code something which you just expected to be a
string. Not a good trap to have in the language.
If you expected it to be a string, why did you use curly braces?
While I'm completely on board with the idea that _pattern_ delimiters
shouldn't affect the _pattern's_ semantics, the second half of the
search-and-replace syntax isn't a pattern. Conceptually, it's either
a string or an expression that returns a string.
Larry pretty much summed up what I'm looking for in this regard -
change the s/// syntax so that it has two distinctive forms:
s/pattern/string/
(where '/' can be replaced by any valid non-bracketing delimiter, and
string is always evaluated as an interpolated string)
or
s[pattern] expression
(where '[' and ']' can be replaced by any valid pair of bracketing
delimiters, and expression is evaluated as a perl6 expression)
--
Jonathan "Dataweaver" Lang