IMO, there's a lot of merit to using the clients' browsers (assuming a homogeneous set such as might be found in a corporate setting) and some well chosen CSS to provide all the display elements you need.
Then, you can rely on CGI or friends to render the data... which you can obtain as required using DBD, DBI or other db modules. The catch is, you still have to get the user input. So -- along side your Perl-controlled browser -- why not use a wxPerl window whose capabilities handle the minimal requirements for input only, thus simplifying the UI at the requestor end?
If you didn't program your executable by toggling in binary, it wasn't really programming!