Если html формируется на сервере — то и экранирование на сервере.
Если формируется на клиенте — то экранируется в рамках json (или в чем он там приходит с сервера), а html-экранирование может выполнять javascript-шаблонизатор.
И ещё, я не понял, причем тут perl.