Hate to tell you, Kevin, but it is just you. All the rest of us were born knowing how to program. I personally flashed on an incredible CFD routine in Fortran while suckling at my mother's breast.
in reply to How do I become a good programmer?
(Sorry, just had to do that ;-)
You have the right method -- study the works of others -- and the desire. Have patience. It may seem like you're getting nowhere, but keep at it. As the I Ching admonishes, "perseverance furthers".
Consider some alternate resources. For example, you may have picked books that aren't appropriate for your stage of growth. Some other possibilities to consider:
One thing that helped me a lot when I was learning programming: read other people's code. One of the best things about using Open Source and Free software is that you can read the programs for education. For example, if you're curious how something in Perl works, try to track it down in the source, and see how it's accomplished. (Warning: this may warp your thinking for life. ;-) Or read some of the modules in your Perl distribution and see how they work.
- "How to solve it" by Georg Polya. A true classic: one of the best all-around books on problem solving.
- "The Perl Cookbook" by Christiansen and Torkington. Instead of a reference, consider just reading it, or studying one or two techniques a day.
- My personal favorite, Effective Perl Programming by Hall and Schwartz, is a great way to rise to "the next level" in Perl. It's the same "item-at-a-time" format as Pragmatic Programmer.