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.
  • Unfortunately, there's quite a bit to criticize about it.

    You are such a tease!

    I myself don't really have a lot of complaints about the language, except that it sure would be nice to have a spiffy IDE sometimes... and it mostly doesn't because it is so dynamic as to make that difficult.

    But, I am interested in hearing what you *would* consider a "legitimate" complaint. (Would I be correct in assuming most lie in the OO area?)
    • There are plenty of valid complaints about Perl. You're right, a lot are in the OO department (how may ways are there to define a class?) But there's also the slew of weirdly named globals. And the lack of proper named parameters. I think inconsistency is probably one of the biggies too (how many global variables do you need for error handling?) Like you say, Perl 6 will (eventually) rectify a lot of these. Or you can look at Ruby [ruby-lang.org] today to get some of them fixed. ;-)

      As to an IDE, probably the best t

    • In addition to Dom's comments, I would also add a complaint that, ironically, I also have with Java: mixing objects and primitives (Perl's less of a pain, but still a pain).

      Lately I've been thinking a lot about allomorphism (think "duck typing" in Ruby) and how it relates to programming. Consider the following snippet:

      foreach my $method (@methods) {
        foreach my $object (@objects) {
          next unless $object->can($method);
          $object->$method( $args_for{$method} );
        }
      }

      • As a rule of thumb, having to check isa() indicates a design flaw.

        There is Scalar::Util::reftype(), which would make the code slightly less ugly and broken, but your theoretical alternative would be nice also.