Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^4: On Commenting Out 'use strict;' (errors)

by TheDamian (Vicar)
on Aug 12, 2005 at 19:30 UTC ( [id://483376]=note: print w/replies, xml ) Need Help??


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:

  • in the Acme:: hierarchy and hence inherently stupid and NOT FOR PRODUCTION USE,
  • in the Perl6:: hierarchy and hence inherently experimental and NOT FOR PRODUCTION USE, or
  • don't actually filter *source* at all (i.e. Inline::Files, Smart::Comments, Toolkit) and hence are unaffected by the parsing limitations of source filters.

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

  • Comment on Re^4: On Commenting Out 'use strict;' (errors)

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        

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://483376]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (6)
As of 2024-04-16 07:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found