Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Re: Perl6 headaches?

by mattg (Novice)
on Nov 04, 2001 at 10:59 UTC ( [id://123142]=note: print w/replies, xml ) Need Help??


in reply to Re: Perl6 headaches?
in thread Perl6 headaches?

I was hoping someone would have some good news, but I still don't see the point in changing Perl's syntax for the sake of (cheesy) dot syntax for method calls. I will assume that the powers that be that are working on Perl6 have good reasons, but as I stated, it just seems like an attempt to make Perl more friendly to java(script) programmers. From what I gleaned from the article (which obviously had some holes) underscores are replacing periods for concatenating and periods are replacing the arrow operator. So, again, to what end? Change and innovation is (almost) always good, but needless change???

matt

Replies are listed 'Best First'.
Re: Re: Re: Perl6 headaches?
by japhy (Canon) on Nov 04, 2001 at 12:08 UTC
    If we want to make Perl more attractive for people from OTHER languages, we need to compromise. Many other languages use the obj.method syntax, so why shouldn't Perl? The reason Perl doesn't is because we never had objects until recently, and we've had string concatenation for a long long time.

    _____________________________________________________
    Jeff[japhy]Pinyan: Perl, regex, and perl hacker.
    s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;

    A reply falls below the community's threshold of quality. You may see it by logging in.
Rex3: Perl6 headaches?
by grinder (Bishop) on Nov 05, 2001 at 03:45 UTC

    The dot operator

    I used to think that replacing -> with . sucked big time, until I read Piers Cawley's article about Perl 6. Now I have learned to stop worrying and love the dot. It's sort of like Visual Basic's with block. Instead of

    $self->{foo} = $self->bar ? 10 : $self->rat * 10;

    one instead writes

    $.foo = .bar ? 10 : .rat * 10;

    Although IIRC, that should be ?? and :: for the ternary conditional operator. Such considerations aside, the succinctness of the dot approach far outweighs the arrow approach (which, it should be remembered, was itself a vast improvement over the apostrophe operator). Your surely agree with me when I say

    $->foo = ->bar ? 10 : ->rat * 10;

    looks... odd. That's reason enough for me to go with the dot approach.

    The underscore operator

    I do think that requiring whitespace around the underscore operator is a bit of a design wart caused by exhaustion of the ASCII character set. Which means that there's not a lot you can do about it.

    In a Unicode environment, I imagine it would be preferable to define a specific operator that doesn't require whitespace disambiguation. I think a small ring character like on a Swedish A would be pretty cool. But if you're not Unicode pure then I guess you're out of luck.

    --
    g r i n d e r
      The case of the underscore operator is not the first time Perl has been dependent on whitespace, by the way. And I like it, too -- you should notice that the underscore acts like a line connecting its two operands. Connecting... concatenating... something like that.

      _____________________________________________________
      Jeff[japhy]Pinyan: Perl, regex, and perl hacker.
      s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;

        Oh, I can live with the underscore operator, as I am believe in drenching my code with whitespace, and yes, I had seen the connector metaphor in the character.

        That said, sometimes, for a higher purpose, you have to scrunch code up. Concatenating is a pretty heavily used operator (at least for me), so it's bound to run into this constraint more sooner than later. And that bothers me a bit. Not much. I'll just probably change my style and interpolate into strings more.

        --
        g r i n d e r

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://123142]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2024-04-19 07:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found