#!/usr/bin/perl use strict; use CGI; use JSON; my $query = new CGI; my $response = whatever(Query=>$query); my $json = JSON->new->utf8(1)->pretty(1)->allow_nonref->encode($response); print $query->header('application/json').$json; sub whatever { # Here you can do REALLY anything, and send back an hash reference }