in reply to Re: quantum behavior in perl?
in thread quantum behavior in perl?

No, this isn't fixed in 5.9.5 (not in my copy anyway). And I'm not surprised, since parsing the string before eval gets run in order to check for this potential problem would only be a partial solution and could be an expensive one. The case of nested subs is easier to fix so I'm glad to hear that it has been addressed.

- tye        

  • Comment on Re^2: quantum behavior in perl? (not fixed)

Replies are listed 'Best First'.
Re^3: quantum behavior in perl? (not fixed)
by chromatic (Archbishop) on Aug 18, 2007 at 17:36 UTC

    Perl does parse the string, in the case of double quotes. (Actually, it has to parse every constant string in the program to find the closing quote, but that's not precisely what you meant):

    $ perl -MO=Concise my $foo = 'bar'; my $baz = "foo${foo}bar\n"; e <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 1 -:1) v ->3 5 <2> sassign vKS/2 ->6 3 <$> const[PV "bar"] s ->4 4 <0> padsv[$foo:1,3] sRM*/LVINTRO ->5 6 <;> nextstate(main 2 -:2) v ->7 d <2> sassign vKS/2 ->e - <1> ex-stringify sK/1 ->c - <0> ex-pushmark s ->7 b <2> concat[t4] sKS/2 ->c 9 <2> concat[t3] sK/2 ->a 7 <$> const[PV "foo"] s ->8 8 <0> padsv[$foo:1,3] s ->9 a <$> const[PV "bar\n"] s ->b c <0> padsv[$baz:2,3] sRM*/LVINTRO ->d - syntax OK

      I guess you didn't look at the rest of this thread. Of course Perl would parse it in the case of double quotes, and that would prevent the problem in the first place.

      The double quotes in the root node were (necessarily) a mis-copy.

      - tye