Hi, it's great that you are getting some exposure to Perl in your class, but your instructor has you using a 20-yr old technique and toolset to write a 21st Century page. Too bad; you could have much more fun building your app with something like Dancer2. You should show it to him/her ;-)
I haven't worked with CGI for a long, long time, but don't you need to print your HTML elements after generating them, as you do with your header?
Hope this helps!
The way forward always starts with a minimal test.