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


in reply to Re: How many man-hours would you estimate you have invested in learning Perl?
in thread How many man-hours would you estimate you have invested in learning Perl?

Let me teach you something else. :)

#!/usr/bin/perl -w is not something you should use. Specifically the -w in there will enable warnings for ALL code, which can include modules which were expressly written to run correctly without warnings (like Coro).

A better preamble would be:
#!/usr/bin/env perl use strictures;
Happy coding! :D

Replies are listed 'Best First'.
Re^3: How many man-hours would you estimate you have invested in learning Perl?
by DrHyde (Prior) on Apr 17, 2013 at 12:03 UTC

    #!/usr/bin/env perl isn't portable, as not all platforms have env in the same place. You should use this instead:

    #!/bin/sh exec perl -x $0 "$@" #!perl # your perl code goes here
Re^3: How many man-hours would you estimate you have invested in learning Perl?
by blue_cowdawg (Monsignor) on Apr 09, 2013 at 13:59 UTC
        #!/usr/bin/perl -w is not something you should use. Specifically the -w in there will enable warnings for ALL code, which can include modules which were expressly written to run correctly without warnings (like Coro).

    Not sure I follow your argument. I want warnings turned on. It has saved my butt many a time and yes I'm aware of the drawbacks.


    Peter L. Berghold -- Unix Professional
    Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg

      Sure, you want warnings turned on... for your own code. That's what use warnings is for.

      Why would you want to use a global setting to cause other modules to throw warnings even though they are operating as intended? (as in the example)

        For one example, "-w" catches all kinds of data errors, from premature EOF to non-numbers where you expect numbers, when you pass a file handle to someone else's code. You'll get false positives, but you will also get a hint where the problem lies when you are getting unexpected results. Fix the ones you care about, remove the "-w" when you're done, and there you go. Monstrosities like "strictures", which turn on all warnings but only in your code, will not only miss these errors, but complain about non-problems.