in reply to Re^2: How to know where I am going wrong in writing the grammar
in thread How to know where I am going wrong in writing the grammar

Looks like an incompatibility with 5.10.0.

I guess I'll have to look at the actual code, but it'll have to wait.

Update: I've never seen that error message before, so here's what diagnostics has to say about it:

(W closure) During compilation, an inner named subroutine or eval +is attempting to capture an outer lexical that is not currently avail +able. This can happen for one of two reasons. First, the outer lexical m +ay be declared in an outer anonymous subroutine that has not yet been cr +eated. (Remember that named subs are created at compile time, while anony +mous subs are created at run-time.) For example, sub { my $a; sub f { $a } } At the time that f is created, it can't capture the current value +of $a, since the anonymous subroutine hasn't been created yet. Conversely +, the following won't give a warning since the anonymous subroutine +has by now been created and is live: sub { my $a; eval 'sub f { $a }' }->(); The second situation is caused by an eval accessing a variable tha +t has gone out of scope, for example, sub f { my $a; sub { eval '$a' } } f()->(); Here, when the '$a' in the eval is being compiled, f() is not curr +ently being executed, so its $a is not available for capture.

Replies are listed 'Best First'.
Re^4: How to know where I am going wrong in writing the grammar
by webfiend (Vicar) on Apr 01, 2009 at 16:26 UTC

    Confirmed that it's not just Windows. I installed ActivePerl 1004 (perl 5.10.0) on Ubuntu Jaunty and got the $errorparse error message.

    Update: Oh, and I got the error marker error using the Jaunty distro perl (5.10.0), so it's not a 5.10 problem either.