Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re: Things I Don't Use in Perl

by brian_d_foy (Abbot)
on Aug 25, 2005 at 20:24 UTC ( #486718=note: print w/replies, xml ) Need Help??

in reply to Things I Don't Use in Perl

I don't get too excited about any new feature in Perl until it's survived a couple of major versions. A lot of things only sound like good ideas but disappear in the next version. Pseudo-hashes, for instance, died (thankfully), although I still have to deal with their insidiousness with the right versions of Perl.

Some other things I don't use and haven't seen mentioned:

  • our(): I can see the reason for our(), but most people don't use it to unmask a package variable. They use it so they don't have to use vars. That sacrifices backward compatibility for no good reason.

  • overloaded operators: I like overloaded operators and I think they are a lot of fun to play with, but I just don't think people think about Perl like that. I probably think about this because I learned about that sort of thing when I did C++ where I could overload based on object types. Since Perl think differently, I don't think people are expecting that. For instance, if I want to print a reference (on purpose, to debug or whatever), I don't want magic stringification. I can see the usefulness of that, but most Perl things don't do that so I don't expect it.

  • Exceptions: I think exceptions would be tolerable if everyone used them and they were built into the language, but not everyone does and they aren't. Perl is much more like C than C++. I'd rather have consistent expectations across modules than a list of modules where I have to remember to wrap everything in eval.

  • Source filters: Actually, I don't use much of anything Damian writes, but it doesn't have to do with the code quality, really. Some people get excited about his cool hacks, but can't seperate his production-useful stuff from the cool proof-of-concept hacks. They end up using anything from TheDamian, and some of them shouldn't be used for anything that anyone else has to maintain (and that's just about everything). I pretend none of that stuff exists so I don't spread the word. It's cool stuff: I just don't want to ever maintain it.
brian d foy <>
Subscribe to The Perl Review

Replies are listed 'Best First'.
Categorized Damian Modules
by TheDamian (Priest) on Aug 25, 2005 at 23:10 UTC
      I know this is asking a lot, but would it be possible for you to, as you have time, modify the REAMDEs and main POD for those to indicate their production-worthiness? I have seen Switch and Class::Contract used in production and I personally have used Quantum::Superpositions in production-affecting code (to good effect).

      My criteria for good software:
      1. Does it work?
      2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

      This hadn't occurred to me until I read your post, but now I think it would be very useful if submitters to CPAN gave a similar explicit rating to their submissions. For one thing, this would help distinguish those submissions that are made in the spirit of "release early, release often" from those that are, at least in the author's estimation, ready for production. I realize that the author's opinion of his/her module may be inflated (or in some cases deflated) but I think it would be a valuable piece of information nonetheless.

      the lowliest monk

      I just took a look at Coy. The fact that the documentation is in haiku makes me an even bigger fan of your work than I was already. Sorry to blather, but that's just great.

      Don't is kinda interesting..

      I'm a big fan of syntax highlighting.

      If I have a chunka code that I want to ignore, I delete it (it's in some versioning system..), comment it out, pod it..

      This could be cool to sort of... encase it. Ignore it. And still be able to look at code and know it does nothing. And still see the syntax highlighting.
      Hm- I guess I could also just.. not call the code.. Hm.

      I think Don't belongs in the blue debugging/coding aids category. It's a nicer spelling of if( 0 ) for multi-line commenting.

      In Bob We Trust, All Others Bring Data.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2021-06-14 03:49 GMT
Find Nodes?
    Voting Booth?
    What does the "s" stand for in "perls"? (Whence perls)

    Results (60 votes). Check out past polls.