in reply to Perl logical operators

Always use use strict; use warnings qw( all );!!!

Replies are listed 'Best First'.
Re^2: Perl logical operators
by Anonymous Monk on Jul 18, 2018 at 12:32 UTC
    Idly wondering why this hasn't become the default ...

        hippo:

        Yeah, but I'd really like to see it become the default.

        Were I to do it, I'd make strict/warnings default, and provide an environment variable to control it. Something like:

        PERL5STRICT:
        • When set to 0, use current (legacy) behavior: you must use strict/warnings if you want them, no warnings if you omit them.
        • When set to 1, automatically use strict/warnings, no warnings if you have them or if you omit them.
        • When unset, automatically use strict/warnings, print a warning (mentioning the PERL5STRICT environment variable) if you include use strict/warnings. Something like:
          Line ##: use strict found, but strict/warnings are on by default. (See PERL5STRICT in ENVIRONMENT section in perlrun for details)

        My second preference (should people dislike the idea of changing the default behavior even with a global override) would be to use this behavior if you invoke perl as perl5, and when you invoke it as perl it would do as it does currently (i.e., act as if PERL5STRICT is 0). That way, I could just link perl to perl5 and change my typical shebang line to:

        #!env perl5

        Hmmmm .... I wonder if they would accept a patch? I doubt it would be very difficult, and I currently have some free time on my hands.

        ...roboticus

        When your only tool is a hammer, all problems look like your thumb.

      Idly wondering why this hasn't become the default ...

      Well, at least there's this: use 5.012; and up enables strict. Backwards compatibility is a big thing with Perl 5, and hence there are often fairly long deprecation cycles for incompatible changes, and if one wants to use the newer features of the new Perl versions, use VERSION; is an easy way to do that.

      See also use and feature.