Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re^3: How to grab Parse::RecDescent error output in a variable?

by ikegami (Pope)
on Sep 15, 2008 at 12:00 UTC ( #711433=note: print w/replies, xml ) Need Help??

in reply to Re^2: How to grab Parse::RecDescent error output in a variable?
in thread How to grab Parse::RecDescent error output in a variable?

Regardless of what the documentation says about use being equivalent to require Module; import Module;, this example shows that it is not the case this time.

Not true. The documentation doesn't say that. Both the documentation and I said use Module; is equivalent to

BEGIN { require Module; import Module; }

And that is clearly the case this time.

Besides that, your re-open of ERROR requires knowledge of the package internals

So does knowing STDERR is duped at execution time. Besides, the benefits far outweigh the drawbacks. Well, if it had worked.

  • Works with scalar handles.
  • Much cleaner code in the caller.
  • In fact, one can arrange to have no extra code in the caller since it can be placed in the "grammar".
  • Works even if use Parse::RecDescent; is executed twice.
  • Works with threads.
  • Minor reliance on stable PRD guts.
  • Doesn't work. Oops!

Clearly format has a side-effect that prevents the use of the nice solution this time.

Ah dang! You could issue the format on the new handle, but that's going pretty far into the inards.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://711433]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (5)
As of 2017-11-21 03:30 GMT
Find Nodes?
    Voting Booth?
    In order to be able to say "I know Perl", you must have:

    Results (295 votes). Check out past polls.