Я изменил строку замещения на:
$buffer =~ s/[\'\’\.]//g;
Это мой результат из командной строки:
$ ./test.pl q="( Can’t Be Dodged )"
Content-Type: text/html; charset=UTF-8
( Cant Be Dodged )
$
Та же строка, но с использованием экранированной left одинарные кавычки дали тот же результат, используя оригинальный код.
Редактировать
Я очистил вывод - теперь командная строка просто '$', ив конец вывода добавлена новая строка, что облегчает просмотр соответствующего вывода.