La bonne façon de nettoyer les données à insérer dans votre base de données consiste à utiliser des espaces réservés pour toutes les variables à insérer dans vos chaînes SQL. En d'autres termes, ne faites JAMAIS ceci :
my $sql = "INSERT INTO foo (bar, baz) VALUES ( $bar, $baz )";
À la place, utilisez ?
espaces réservés :
my $sql = "INSERT INTO foo (bar, baz) VALUES ( ?, ? )";
Et passez ensuite les variables à remplacer lors de l'exécution de la requête :
my $sth = $dbh->prepare( $sql );
$sth->execute( $bar, $baz );
Vous pouvez combiner ces opérations avec certaines des méthodes pratiques de DBI; ce qui précède peut aussi s'écrire :
$dbh->do( $sql, undef, $bar, $baz );
Voir la documentation DBI pour plus d'informations.