callbackFunction = function(options, success, response) { if (success === true) { var data = Ext.decode(response.responseText); doSomething(data); // or Ext.get('contents-div').dom.innerHTML = response.responseText; } else { Ext.MessageBox.alert('Error', 'Something blew up.'); } } Ext.Ajax.request({ url: '/path/to/cgi', callback: callbackFunction, params: { rm: 'ajax_function' } }); #### sub ajax_function { my ($self) = @_; my $data = doStuff(); # or you could return HTML return $self->{json}->objToJson($data); }