Вы можете использовать метод ->quote
(при условии, что вы используете DBI):
my $oldValue = $dbh->quote('oldValue');
my $newValue = $dbh->quote('newValue');
$dbh->do("UPDATE myTable SET myValue=$newValue where myValue=$oldValue");
Еще лучше, лучше использовать значения связывания:
my $sth = $dbh->prepare('UPDATE myTable SET myValue=? WHERE myValue=?');
$sth->execute('newValue','oldValue');
Это также должно работать для вызовов хранимых процедур, при условии, что оператор после расширения строк является допустимым SQL. Это может зависеть от драйвера / БД, поэтому YMMV.
my $sth = $dbh->prepare("DBName..ProcName ?,? ");
$sth->execute($a, $b);