well, since you're not familiar with the CGI builtins, you're missing something very imporant ... you're creating N widgets ( where N is the number of rows returned ), not creating N options in the scrolling list.
i'm sure something more like a Scwartzian Transform in the original map would do it...
Comment on Re^2: creating CGI::scrolling_list ... can this be shortened?