Slash Boxes
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

use Perl Log In

Log In

[ Create a new account ]

schwern (1528)

  (email not shown publicly)
AOL IM: MichaelSchwern (Add Buddy, Send Message)

Schwern can destroy CPAN at his whim.

Journal of schwern (1528)

Monday December 24, 2007
02:36 AM

Let the Airing of Perl Grievences begin!

[ #35198 ]

Today, according to Seinfeld, is Festivus the Holiday for the rest of us. One of the rituals of Festivus is the Airing of Grievances. It consists of lashing out at others and the world about how one has been disappointed in the past year. In particular, let's lash out at Perl.

Here, I'll start.

Perl, I hate your dereferencing syntax so much.

push @{ $hash->{key} }, 42

Oi what a mess! Why can't you just put autoboxing into the core?


Is that so hard? Your sister Ruby can do it, why do you have to be such a shlemiel?

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • I agree the deref syntax is yuk, but I don't know if autoboxing is the answer. I actually think the direction of the pipeline with autoboxing is weird, not to mention the whole "is it returning things or modifying in place" confusion (yes, yes, obviously people would figure that one out, but both options are totally legit, so it is not always obvious which one it should/would/could be). Overall I found autoboxin' [] to be kinda un-Perlish myself, I prefer to just meta-program [] all that yuk away instead.

    - St

  • I don’t see why we’re being forced to write the outer deref. It could be much simpler:

    push $hash->{key}, 42;

    Much nicer than autoboxing, too.

    There’s never any more or less of a guarantee that $hash->{key} will be an array-ref anyway, regardless of which way you write it. There's never any ambiguity there either. The current rule is just arbitrary outgrowth of the prototype brain damage. A better way to approach the problem that prototypes attack would have been to provide a pre

  • Flattening of lists.

    Stringifying of references.

    Taking strings so seriously that seeing them as characters becomes hard.

  • I'm tired out writing "my $self = shift". [] helps some but lacks an equivalent of "shift".

    Grievance number 2: The large scope of the Perl 6 spec means Perl 6 will take even longer to complete. I would prefer simpler, sooner.
  • You think I should die waiting for a result from you? I'm not so young anymore you know. OK, so your older brother C++ (he sounds like a lawyer, he makes your bubbe proud) sucks at it too, but at least he remembered to call me with his wrong, rounded off answers sometime today. Would it kill you to add some optimizations?
  • Why can't you be more like your sister Ruby? Not only does she have autoboxing, she also has a sort_by method. Why do we still have to schlep through Schwartzian transforms like they did back in the Old Country?
  • Why is the only difference between methods and functions at the point of call, not the point of declaration?

  • Apart from said deref syntax...

    * I have to worry about circular references? WTF! It's not like a decent garbage collection system is exactly cutting edge.
    * Having to write use strict/warnings/-T in every damn file
    * Source filters, and the deluded folk who think they are as good as Lisp macros
    * SUPER being related to the package the method was compiled into. Like that makes sense.
    * Depth-first method resolution by default
    * The evil mushing together of namespaces and classes
    * Packaging up a whole bunch of stu
    • Oh yeah. 1/3 is a bloody rational. Treat it like one until I tell you otherwise.
    • * Packaging up a whole bunch of stuff for deployment by non-Perl gurus is just too damn hard