On Thu, 28 Sep 2000 23:54:20 +0100, Hugo wrote:
>We thought of a few other possibilities too. I think it is a shame you
>did not mention them, and explain why your proposal is better.
Let me think on it.
Is $$ the only alternative, or did I miss more? I don't think I've even
seen this $$ mentioned before?
>I still like the idea of $$, as I described it in the original thread.
>I've seen no comments for or against at this time.
I'll try to find that "thread" back.
>>Perhaps '$$' to mean match at end of string (without /m) or at end
>>of any line (with /m)? The p52p6 translator can easily replace
>>references to $$ with ${$}.
I can't see how yet another alternative, /$$/, is any better than what
we have now: /\z/.
>:=head2 '/ms': combined '/m' and '/s'
>:
>:'/ms' still works as before. Internally, '/m' has taken over the job of
>:matching before a newline at the end of the string, simply because /$/m
>:can match before I<every> newline.
>
>Eh? Surely /$/ms would now only match _after_ the newline, or at end of
>string, whereas before it would match before _or_ after any newline, or
>at end of string?
Oh damned, you're probably right. This makes me wonder if this is doing
the right thing...
>This seems like a read bad idea. I think you have to assume people
>are feeding you the code they want to run. At worst you should
>generate a warning, but I think it is evil not to migrate things
>properly.
Well... there's a simple solution: replace /$/ with /\Z/. That one would
remain the same. Wouldn't it? I'll surely add that.
>I don't think changing /s is the right solution. I think this will
>incline people to try and fix their problems by adding /s, without
>realising that this changes the definition of every . in their
>regexp as well.
Perhaps. I do think that, in general, textual data falls into one of
three categories:
* text with possibly embedded newlines
* text with no embedded newlines
* text with an irrelevant newline at the very end.
The '/s' option is for the 1st case. No '/s' for the 3rd. As for #2: you
don't care.
--
Bart.