What I don't understand is why you are using a hash for this, it's not necessary, you can use the result array, it gives you the right order... taking the result and then copying it to a hash is not necessary.
well, in order to have the labels for the scrolling_llist different than the values, per the CGI documentation, an array of values and a hash of value -> label mappings *is* needed.
i'm creating:
<select>
<option value='1'>Foo </option>
<option value='3'>Baz </option>
</select>
now i realize that hashes are nothing more than special arrays, *but* in order to create the sample above, CGI::scrolling_list requires an array of values *and* the (optional) hash of label mappings.
i haven't tried to let perl massage the resulting array into a hash, *but* it's also an arrayref of hashrefs (as i've written the fetch), and CGI::scrolling_list doesn't understand that.