http://qs321.pair.com?node_id=483376


in reply to Re^3: On Commenting Out 'use strict;' (errors)
in thread On Commenting Out 'use strict;'

But, to be quite frank, TheDamian was a fool. (: To see this you need only note that many modules he wrote that were meant to be useful used source filters and it took him years to realize and own up to the fact that these modules were seriously flawed because of it.

No doubt I *am* a fool in many many ways. But this particular justification for that conclusion just doesn't hold water. The *only* module it might conceivably apply to is Switch.pm, which specifically has a LIMITATIONS section in the POD, clearly explaining the potential problems.

The only other modules I have released that use source filtering at all are either:

By all means pillory me for past mistakes...I've surely made enough of them. But let's make them *actual* mistakes, huh?

Replies are listed 'Best First'.
Re^5: On Commenting Out 'use strict;' (source filters)
by tye (Sage) on Aug 12, 2005 at 20:38 UTC

    Thanks for the clarifications. I apologize for my mischaracterization.

    I don't consider the LIMITATIONS section of Switch to be even close to adequate. It mentions rather specific limitations in parsing which is likely to give the opposite impression from the Perl6::Rules disclaimer that I quoted. That is, they imply that other than these few exceptions, the parsing of complex code is unlikely to be a problem.

    But I've seen reports of problems that are not covered by any of the specific cases listed (such as the contents of comment lines causing very random-looking problems). Does the module always correctly distinguish a '/' character for division from a '/' character that starts a regex (which requires tracking prototypes), just to pick one example?

    I once started writing code that would use Inline::Files but quickly switched to a different method when I realized that the module used a source filter. I felt that the problems I'd seen reported for Switch justified a disclaimer like the Perl6::Rules one I quoted and, since neither Switch nor Inline::Files contained anything close to that, I did not feel I could trust Inline::Files at all.

    So, personally, I suggest modifying the documentation of these modules to make the (rather wide, no?) distinction clearer.

    I apologize again for the unfair thrashing. I hope the above helps to explain the misunderstanding that lead to my confusion.

    - tye