perl4 to perl5.004 converion with debugger problem
authorM.J.T. Guy <mjtg@cus.cam.ac.uk>
Sun, 15 Jun 1997 07:27:52 +0000 (19:27 +1200)
committerTim Bunce <Tim.Bunce@ig.co.uk>
Wed, 6 Aug 1997 12:00:00 +0000 (00:00 +1200)
commit5e77893f7750cb306f72f716d77774596666441f
tree9d54abc3c0adf5f7b42ee25c368fd539fe4562b9
parent8dbef6988b4d46823e28b4caabe5a76ed664f7aa
perl4 to perl5.004 converion with debugger problem

jmm@elegant.com (John Macdonald) wrote
> The other issue is an annoyance rather than a stopper.  As cited
> in perl425traps, "stuff${'var}more stuff" is no longer
> supported, only $::var and ${::var} are recognized with a
> string.  Changing the ' to :: means that the code is no longer
> perl4 compatible.  I don't want to have ongoing work on two
> versions (perl4 and perl5), so the only good workaround, for
> now, is to break the string into:
>
>     "stuff" . $'var . "more stuff"
>
> As I said, it's an annoyance - there's lots of them in the code
> and a significant proportion of the conversions to . would cause
> lines that ought to be wrapped for readability purposes.
>
> Is there any hope of getting the $' syntax recognized within
> strings?  (Sigh, I'm sure it's too late for it to go into
> 5.004_01, though.)

I think it would be a very bad idea to retrofit this.    Having single
quotes which don't start quoted strings is a syntactic ambiguity
nightmare.    Consider soft references such as "stuff${'var'}more stuff".
(I presume that's why it had to be removed.)

You can avoid this problem, and not extend the lines quite as much, by
explicitly including the package name:

     "stuff${main'var}more stuff"

which works compatibly in perl4 and perl5.

Attached is a suggested patch for perltrap.

p5p-msgid: E0wdKJY-00010w-00@taurus.cus.cam.ac.uk
pod/perltrap.pod