Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • Seriously, you did a very good job of putting forth your point of view, and I wish I could simply agree with it. But I can't. Saying that when you ask for a particular version of Perl, you won't get new features, forces anyone implementing new features to have to put a check in their code to detect whether to go with the new or the old version of the feature. This would force the internals to get even more messy than they already are, because you're now maintaining a promise for perfect backwards compati

    • You make a good point. I think "good enough" backwards compatibility would still work fine though. My main concern is the addition of new pragmas that might be added to be loaded on default.

      When I write use 5.010; I want to get given, when, say, and all the rest. But I don't expect autodie, strict, warnings and other such things to be turned on for me automatically. That could seriously break my code. I really like autodie, but I have some legacy code that does its own error handling. autodie does

      • Jarich, thank you very much for expressing so clearly what it also my point. Yes, we may be "backward compatibility nazis" like some people are saying, but those people should know that for most companies out there, Perl is just like AWK, except more powerful. You expect it to always works the same way you expect the Sun to raise each morning.

        Also, to illustrate what Jarich said, here is a ~250 lines module which is perfectly valid and working Perl code:

        $ perl -c BigBrother.pm
        BigBrother.pm syntax OK

        Now, let's say that strict is enabled by default:

        $ perl -Mstrict -c BigBrother.pm
        Global symbol "$DEBUG" requires explicit package name at BigBrother.pm line 33.
        Global symbol "$script" requires explicit package name at BigBrother.pm line 40.
        Global symbol "$BBHOME" requires explicit package name at BigBrother.pm line 49.
        Global symbol "$line" requires explicit package name at BigBrother.pm line 53.
        [ cut 88 lines or errors ]
        Global symbol "$hosts" requires explicit package name at BigBrother.pm line 129.
        Global symbol "%host" requires explicit package name at BigBrother.pm line 129.
        BEGIN not safe after errors--compilation aborted at BigBrother.pm line 130.

        Oops! You just broke the monitoring system of more machines than you ever met in your whole life.

        --
        Close the world. txEn eht nepO