I'll throw in one more vote for JSON, having used it on a recent project and had great success with that.
The above mentioned readability concern is a non-issue imo, because the Perl JSON module has a built-in 'pretty' parameter
that takes care of that:
my $str = $json->objToJson($obj, {pretty => 1, indent => 4});