¿Cómo puedo hacer que Perl detecte secuencias UTF-8 malas?

Estoy ejecutando Perl 5.10.0 y Postgres 8.4.3, y cadenas en una base de datos, que está detrás de unDBIx :: Clase.

Estas cadenas deben estar en UTF-8 y, por lo tanto, mi base de datos se está ejecutando en UTF-8. Desafortunadamente, algunas de estas cadenas son malas, contienen UTF-8 malformado, por lo que cuando lo ejecuto obtengo una excepción

DBI Exception: DBD::Pg::st execute failed: ERROR: invalid byte sequence for encoding "UTF8": 0xb5

Pensé que podría simplemente ignorar los no válidos y preocuparme por el UTF-8 mal formado más tarde, por lo que al usar este código, debería marcar e ignorar los títulos malos.

if(not utf8::valid($title)){
   $title="Invalid UTF-8";
}
$data->title($title);
$data->update();

Sin embargo, Perl parece pensar que las cadenas son válidas, pero aún arroja las excepciones.

¿Cómo puedo hacer que Perl detecte el UTF-8 malo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta