in reply to encoding a boolean in JSON::RPC::Client

You should probably use JSON::true , instead of 'true'.
>perl -MJSON -E "say to_json({x=>33, params=>{'history'=>JSON::true}, +})" {"params":{"history":true},"x":33}

        The best defense against logic is ignorance.