Do you see anything suspect with the code I posted?
Absolutely not! Your code is great. Your separation of model/view/controller is textbook quality. Academically, it is sound.
It just doesn't look like fun. But that is me. It might be to you. I just like that if I can make the "lifeless HTML file" just a little less lifeless, it can greatly simplify my coding load. I can generate data, pass it along and let it be consumed in optimum fashion. But that is "optimal" to me. EMWV (everyone's mileage will vary).
my @a=qw(random brilliant braindead); print $a[rand(@a)];