in reply to Perl Debugger Goes Silent

I think I've only seen that when doing string eval. That seems unlikely to have been the case in the example you described above, however.

The debugger stuffs source code into places where you can examine it so you could use that information to try to better figure out what is going wrong:

DB<1> x sort grep /^_</, keys %main:: ... DB<2> x @{"main::_<t/petition/quick.t"}

- tye        

Replies are listed 'Best First'.
Re^2: Perl Debugger Goes Silent
by aaronelliotross (Novice) on Jul 18, 2007 at 22:57 UTC

    tye, you rock.

    Turns out that there's a string eval in Test::Builder that is triggering the problem. Not just a string eval, a string eval that has a '#line' directive in it!

    In my version (0.7) it's at line 710:

    # Yes, it has to look like this or 5.4.5 won't see the #line directive +. # Don't ask me, man, I just work here. $test = eval " $code" . "\$got $type \$expect;";

    $code has something like "#line 31 t/petition/quick.t" in it. Removing $code from the string eval solves the problem.

    Fascinatingly, the Test::Builder code still reports the error at the right line. I wonder why and when it's necessary.

    What's up with string evals and #line in perl 5.8.8?

    Aaron