Il modo corretto per disinfettare i dati da inserire nel database è utilizzare segnaposto per tutte le variabili da inserire nelle stringhe SQL. In altre parole, NON farlo MAI:
my $sql = "INSERT INTO foo (bar, baz) VALUES ( $bar, $baz )";
Invece, usa ?
segnaposto:
my $sql = "INSERT INTO foo (bar, baz) VALUES ( ?, ? )";
E poi passa le variabili da sostituire quando esegui la query:
my $sth = $dbh->prepare( $sql );
$sth->execute( $bar, $baz );
È possibile combinare queste operazioni con alcuni dei metodi pratici DBI; quanto sopra si può anche scrivere:
$dbh->do( $sql, undef, $bar, $baz );
Consulta i documenti DBI per ulteriori informazioni.