http://www.perlmonks.org?node_id=510821


in reply to Re: I know what I mean. Why don't you?
in thread I know what I mean. Why don't you?

Howdy!

I think you take GrandFather too literally.

If the offending code runs the same with or without strictures/warnings, then they aren't essential to the code fragment. One can speak to strictures/warnings in the exposition. The key is to remove all distractions from the problem at hand. It's not a golfing thing.

I think the recommendations are sound, especially if taken intelligently instead of mechanically.

yours,
Michael
  • Comment on Re^2: I know what I mean. Why don't you?

Replies are listed 'Best First'.
Re^3: I know what I mean. Why don't you?
by Perl Mouse (Chaplain) on Nov 22, 2005 at 15:26 UTC
    If the offending code runs the same with or without strictures/warnings, then they aren't essential to the code fragment.
    I know that, you know that. Unfortunally, it happens over and over again that someone posts a code fragment with a problem, without 'strict' or 'warnings', and where it doesn't matter whether strict and warnings are on or not, and people will reply with pointless posts saying "I don't know what the problem is, but it's better to use strict and warnings".

    That's why I recommend to not golf. It's a pre-filter, it keeps out some of the useless replies.

    One can speak to strictures/warnings in the exposition.
    Sure, but then you might as well say it in the code.
    The key is to remove all distractions from the problem at hand.
    Exactly. Remove all distractions from the readers. That includes not emitting things that might cause replies of the form "perhaps you should try adding this".

    The absense of 'use strict' or the use of '$a' is a trigger for people to respond. Not to the problem, but to the distraction. Add characters - to eliminate distractions.

    Perl --((8:>*

      Judging the use of strict and warnings by the presence of the pragmata alone is stupid. No my in sight in a longer snippet that uses multiple variables is a much better indicator. Global filehandles and two-argument open are additional red flags. Basically, I’ve seen enough bad Perl code that I can tell it by the “smell” I’m not even sure all of the hints I pick up on are conscious.

      Though in general, unless the problem is obviously caused by a lack of strictures or would clearly have been pointed out by a warning, I only suggest that the poster may make his life easier by using them. And I’ve downvoted a fair number of nodes where someone just hawks about strictures and warnings when they obviously haven’t even taken the time to read the poster’s problem description and code. (I remember there was a thread recently where half a dozen people worthlessly posted about strict and warnings when the problem had absolutely nothing to do with that. Way to pollute the forum.)

      Makeshifts last the longest.

        Global filehandles and two-argument open are additional red flags.

        True, unless one is writing scripts that must run on older systems which came with perl 5.005_03 and can't be upgraded in a timely manner. There's still a lot of Solaris 8 out in the wild to which this applies.