I found another set of places where this change breaks things:

       foo( @cgi['bar'][0] || 'default value' )

no longer works, because the left-hand side returns empty string. I am very
happy with the practice of "nil is false, strings (including empty) and
numbers (including zero) are true" but it doesn't work here any more :-(

Still, a global search-replace of
    @cgi[
with
    @cgi.params[
seems to have done the trick.

Regards,

Brian.