in reply to How DO those monks do it?
Caveat: I'm not an experienced programmer
Now, with that out of the way...::grin::
When I go about designing a program, I typically mull it over in my head for a while. This is a big conglomeration of thinking about what the program needs to be, why the program needs to be, what the specs are, what my resources are...a very holistic contemplation of the design. Then, once I've become accquainted with the program. I begin to figure out the best way to go about doing something. I tend to try and isolate the core bits and focus on them, knowing that the glue that brings them together will flow naturally if I write those parts well. I debug as I go. Writing the code in chunks and getting the bits and pieces to work a step at a time. Fortunately with Perl, this is a very speedy way of doing things. With C++ I tend to write more at a time, but I still use the same approach.
It seems to do me well.
As far as the other part of the question. I myself am fairly new to Perl. I have found, however, that in general it is better to know where to find things than to just know things. I use a mixture of co-workers, internet buddies, the Camel, perldoc, and other resources. I just put my feelers out, and usually get good info back.
Hope that's helpful!