I have to agree with derby. I started my AJAX experiments with CGI::Ajax, but quickly discovered that it actually hurt more than it helped in most cases. I personally use CGI::Application for my webapps, and for AJAX code I just make new runmodes for AJAX queries and then use one of the excellent functions provided with jQuery.