You might consider a real world project, whose assignments would be stages in the project. One idea might be a web page for the high school football team, with scores and stats. Assignment might be things like:
- Introduction to MySQL
- MySQL I/O using Perl DBI.
- Calculations using data read from MySQL database.
- Introduction to Perl CGI.
- Making a dynamic web page.
- Making an input form.
The example I give would require access to a MySQL database and an apache server. But setting those up could be an assignment too ;).
If your local football coach can't give you data, then one assignment could be:
Scraping high school football data off the local sports page.