I have sometimes received replies that missed what I was asking, but hey, it's free advice. One can't expect people to put as much effort into their answers as one puts into one's questions. After all, one is getting something for free.
I have also discovered this: very often, in the process of making my question as crystal clear and unambiguous as possible, I end up thinking up the answer myself!
- Posting working (or almost working) code is a huge plus. It amazes me how often the monks have to request code from OPs.
- Posting pseudo-code can be very helpful sometimes, because it allows one to express algorithmic ideas more precisely than does prose, without requiring a working implementation.
- If the question is about how to process some input, then posting both some sample input and the corresponding desired output is also a huge plus.
- If you want to understand how something is done, and not just get it done, then say so, so that you don't get pelted with pointers to CPAN that leave you none the wiser.
- Learn to ask by watching how others ask. Over time you will find that some people ask questions very well, and get good answers right away. Learn from them. Study the well-posed questions and try to figure out what makes work.
- Realize that asking questions well often very hard, simply because when you are immersed in a problem it is nearly impossible to know how to describe it fully to anyone else. This means that, try as you may, there's a good chance you won't get it right. Luckily, in PM replies arrive quickly, plus you can update your posts, which means that you can clear up any misunderstandings that you detect from the first reply or two in an update.