http://qs321.pair.com?node_id=386231


in reply to Looking for examples of well-written modules

I'm looking for a list of well-written Perl modules.

This is a very difficult request, because of TIMTOWTDI one mans well written code is another mans crap. Personally Austen puts me to sleep and I think Hemingway can be a pompous homophobic ass, sure they can write well, but the subject matter and style don't appeal to me. I would rather a whirlwind of sex and insight with Henry Miller or a good drug-induced paranoid romp with Phillip K. Dick or enjoy a good graphic novel by Joe Sacco or Art Speigelman or one of my all time favorites Alfred Bester whose work always leaves me wishing he had written more. But hey, thats whay I enjoy reading, which is just a highly subjective opinion coming from a complete stranger.

Code I think (as you indicate as well) is much the same. I personally enjoy reading code, I get a lot of satisfaction from it and I agree with you that I find it a valuable learning experience. But given the choice I like to read code in functional languages (or code written in a functional style). Standard ML is a favorite of mine, along with Erlang and sometimes Haskell (LISP and Scheme just have to many parens to make them enjoyable to read). My code, although almost always OO, leans towards that functional style too. To those of the more imperitive persuasion, this may make my code akward and difficult to follow. Some people out there like reading C, personally it just gives me a headache (although I find I have to do it a lot, so I am getting more used to it).

So I guess my point is that you may have a hard time finding good modules to read if you go looking for them. I would instead suggest that you try reading the modules you use often first. Since you know what they do from the outside, you are better prepared to understand them from the inside. And don't worry so much about the good code/bad code thing as sometimes reading bad code can be a valuable learning experience too. And just like books, if you find an author you like, you can try reading their other works too.

... Things you've written yourself that you'd self-nominate for closer public scrutiny.

I was a fine arts painting major and we would many times have daily critiques and I used to really enjoy when I got blunty honest yet constructive criticism. So I don't mind throwing my work up for public scruitiny at all, here is my page on CPAN. I think I am the most happy with Tree::Binary right now, but that might a honeymoon thing since its my most recent one. But anyway, feel free to fire away.

-stvn