You might want to have a look at WWW::Mechanize. It can definitely handle the heavy lifting of the testing automation.
You will probably also benefit from unit testing the lower layers of your application. Do all of your library functions have unit tests that (reasonably) cover all kinds of inputs, good or bad? Test::More is your friend, here. You can also play with Test::Simple if you're new to the Perl testing style.
You will still of course need some human QA (write a test plan for your testers that covers your requirements), but the automation can certainly help you catch coding errors more quickly.