many people who do so are attempting to do something complex like writing CGI applications as they learn.
CGI applications are excellent introductory projects.
Think about what they can teach you:
- Security - validating all incoming data mostly, but depending on the project they could also learn about encryption, server configuration, and many other areas.
- Use existing code - writing parameter parsers is boring, tedious work that will more likely than not result in a buggy, insecure end product. Using extensively tested code is a good idea.
- Most importantly, programming, and more specifically Perl is fun and has real world applications. If people spend a week writing programs to convert fahrenheit to celsius, they're going to get turned off programming pretty quick.
I see very little wrong with writing CGI scripts as an introduction to Perl. So what if people develop a few bad habits while they're learning? If they stay interested and stick with programming they'll learn to fix them fast enough.