use JSON; $params->{timeout} = 2000; $body->{"timeout"} = (defined $params->{timeout}?$params->{timeout} : 3000); print "$body->{timeout}\n"; #<-----suspect line my $body_string = to_json($body); print "$body_string"; #### Output: 2000 {"timeout":"2000"} #### use JSON; $params->{timeout} = 2000; $body->{"timeout"} = (defined $params->{timeout}?$params->{timeout} : 3000); my $body_string = to_json($body); print "$body_string"; #### Output: {"timeout":2000}