On Tue, 2002-04-23 at 12:48, Larry Wall wrote:
> Brent Dax writes:
> : # \t also <tab>
> : # \n also <lf> or <nl> (latter matching
> : logical newline)
> : # \r also <cr>
> : # \f also <ff>
> : # \a also <bell>
> : # \e also <esc>
> :
> : I can tell you right now that these are going to screw people up.
> : They'll try to use these in normal strings and be confused when it
> : doesn't work. And you probably won't be able to emit a warning,
> : considering how much CGI Perl munches.
>
> I can see pragmatic variants in which those *do* interpolate by default.
> And pragmatic variants where they don't.
If you put them in one, put them in the other, HOWEVER, there's a strong
pragmatic reason for neither that i can see.
HTML/XML/SGML
I hate to say it, but if <> interpolates in everything cleanly with no
overloading, the *ML camps will thank you deeply. How often I've
written:
qq{<foo>$content</foo>}
I cannot tell you, but it's large.
Why not use {} for this and add an {eval:code}?
> I'm just wondering how far I can drive the principle that {} is always
> a closure (even though it isn't). I admit that it's probably overkill
> here, which is why there are question marks.
I like the idea, but I don't think it fits. On the other hand, if inside
all interpolating operators {} is the special thing that gets
interpolated (and NOTHING else), I could see liking the new look:
qq{a${x}b} => qq{a{$x}b}
qr{a\Q${x}\Eb$} => qr{a{q:$x}b$}
qr{a${x}b$} => qr{a{$x}b$}
q{a}.eval($x).q{b} => qq{a{e:$x}b} or qq{a{{$x}}b}
"ajs\@ajs.com" => qq{[EMAIL PROTECTED]}
"ajs". @{ajs} .".com" => qq{ajs{@ajs}.com}
I know it's a departure from your original idea, but it certainly
unifies the syntax nicely:
qq{Hello, World!{nl}}
qr{Hello, World!{nl}}
> With respect to Perl 5, I'm trying to unhijack curlies as much as possible.
Ooops.... :-)