If an LWP request gets any of these 400-series codes, $response->is_error will be true, as it will be for any of the 500-series codes. For all other status codes, $response->is_error will be false.
400 Bad Request 401 Unauthorized 402 Payment Required 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Required 408 Request Timeout 409 Conflict 410 Gone 411 Length Required 412 Precondition Failed 413 Request Entity Too Large 414 Request-URI Too Long 415 Unsupported Media Type 416 Requested Range Not Satisfiable 417 Expectation Failed 420-424: (Planned extensions involving WebDAV) 426 Upgrade Required (RFC 2817)