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.
- Benefits
-
- 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.
- Drawbacks
-
- 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.
|
---|