in reply to Re^9: Why Perl 6 is taking so !@#$ long
in thread Why Perl 6 is taking so !@#$ long

Not knowing that "err" is "defined OR", my first thought would be that it had something to do with exceptions. The definition of the word implies that it has something to do with errors.

It sounds like your intuition is working just fine to me. Isn't that how err will be used? Isn't that how or is used now? (And since or is slightly wrong, err is introduced to pay attention to definedness rather than truth)

BTW, what does your intuition tell you about //? And why? Intuition comes from experience and is specific to the tool you're using. A C++ programmer would intuit that // introduces a comment. A Perl programmer has no such intuition. A Perl programmer might think it has something to do with the other doubled-character operators, &&, and || (or just be confused and have to look it up :).

Replies are listed 'Best First'.
Re^11: Why Perl 6 is taking so !@#$ long
by shotgunefx (Parson) on Feb 28, 2006 at 15:43 UTC
    Something being undefined is not necessarily an error. More along the lines of false, not wrong IMHO.

    I think // is a bit different. I did come from a C/C++ background and it's use made it fairly obvious that it wasn't a comment. Err binds a bit tighter in the way that most people think.The fact that 69 distributions on CPAN currently define a sub named err should say something.

    -Lee
    "To be civilized is to deny one's nature."

      Many routines in the perl world return undef to designate a failure of some sort. This usage is not false in the sense of "opposite of true", but it is exceptional.

      The fact that 69 distributions on CPAN currently define a sub named err should say something.
      Yeah! That there's need of some standardization. Perl6ism to the rescue! ;-)

      update: BTW, read the Read or Die section of Exegesis4.

        I've been on perlmonks for just about five years now and this is probably my most uncouth post.

        My opinion is that "err" is a plain stupid and counterintuitive name for what it does. It doesn't make any sense.

        -Lee
        "To be civilized is to deny one's nature."

        Sigh. Yeah. Too bad. Its still a crappy name, even if it does look cute in a couple of contexts.

        I had a quick look through my code for defined, and very few of the uses were from function returns (or is almost always satisfactory for that case). Instead the majority were stuff like this:

        $x = $default unless defined $x;

        Since i doubt im unusual in this respect quite frankly I think Larry made the wrong call on this. And given that 69 distributions (including iirc DBI) use 'err' I think this is just bad plan. Why should Perl6's poor choice of a name have to negatively impact 69 CPAN distributions distributions of Perl5 code? IMO for no reason other than whimsy.

        And if I understand this correctly (its quite possible I dont), the only reason 5.8 hasn't had the 'dor' patch (funny how its called that) is because of this potential breakage. So thousands of programmers have been unable to use something that would go a long way to making things easier because Larry decided one day that 'err' sounded like a slurred 'or' and decided that in Perl6 this is what it would be called. And of course Perl5 can't name it 'dor' because that would contradict Perl6.

        Which just leaves me going 'ARGHHHHH!'

        ---
        $world=~s/war/peace/g

Re^11: Why Perl 6 is taking so !@#$ long
by Eimi Metamorphoumai (Deacon) on Mar 02, 2006 at 16:04 UTC
    And that's why I suggested that err be made into a very local try/CATCH block. It keeps the same mnemonics (deals with the "error" produced by the LHS), but does so in an actually exception oriented way.