in reply to combining html and on-the-fly images using Image::Magick

You could write a second CGI script that accepts a argument for the gif to display (say , display.cgi). The first script then simply creates HTML, and any reference to a dynamic image will look like:
<img src="/path/to/display.cgi?name=foo" alt="foo" />
But if you have a lot of these ... that's a lot of CGI hits on the server. I would consider 'bulk generating' the images via a cron job if server performance becomes an issue (unless they are very 'on the fly' of course).

Also, consider using CGI.pm's header method to simplify printing content headers:

usg CGI qw(header); print header; print header('image/gif');

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)