This is just a few quick comments after looking at your code:
- Your program works: congrats; all else is gravy.
- There are several .* 's in your regexes; be sure to take a
careful look at those. Could they be more carefully defined?
- The fact that your script zips through the first several records indicates that there is a database problem more than a perl problem. Certainly the queries are getting slower as the database grows. Try turning the indexing off; I understand that you will lose some speed with your selects. The only way to know which way is better is to try it.
- Carefully consider if you really want to do all of those selects while you are inserting your data. Could some of the information be stored in a hash or array? That would really boost your speed.
Anyway, it largely looks like good work. You should be very irritated with your university for not letting you take database design classes. Your advisor should be going to bat for you here. If you want some back up from someone in industry, /msg me.