This may seem like heresy, but I'm not sure that Perl is necessarily the best choice as a first language to learn. I'd say yes, if it was the Nth language, but it's a bit steepish in the learning curve department (third isle on the left…) and that can make a tremendous difference. Oddly enough what I would recommend is Lisp! Actually, one of its many decendants, Scheme. That may seem a bit outrageous, to some, but I look at it this way— if a 100,000 architects can learn AutoLisp, then certainly someone
who actually wants to learn how to program can handle Scheme! And with that in mind, I'd reccomend these three books:
To give some indication of available resources, here is the first page from a Google search:
As to the mechanics of "So how do I learn to program", I would suggest that once you have picked the language you want to learn, next find an implementation of it that runs in your environment of choice and is either low-cost or no-cost. Then pick something to do—prefferably something you want to do and at the same time, something that you know well enough to do! At that point, dive in, the water is fine…
Update: Added a better beginner book because guillaume told me it was still avaiable!
–hsm
"Never try to teach a pig to sing…it wastes your time and it annoys the pig."