Когда на этот вопрос впервые ответили, HTML :: Entities был модулем, который, вероятно, использовал большинство людей.Это чистый Perl, и по умолчанию он экранирует зарезервированные символы HTML ><'"&
и широкие символы.
Недавно появился HTML :: Escape .Он имеет как XS, так и чистый Perl.Если вы используете версию XS, она примерно в десять раз быстрее, чем HTML :: Entities .Однако он только экранирует ><'"&
и не может изменить значения по умолчанию.Вот разница с версией XS:
Benchmark: timing 10000 iterations of html_entities, html_escape...
html_entities: 14 wallclock secs (14.09 usr + 0.01 sys = 14.10 CPU) @ 709.22/s (n=10000)
html_escape: 1 wallclock secs ( 0.68 usr + 0.00 sys = 0.68 CPU) @ 14705.88/s (n=10000)
И вот честный бой с чистыми версиями Perl на каждой стороне:
Benchmark: timing 10000 iterations of html_entities, html_escape...
html_entities: 14 wallclock secs (13.79 usr + 0.01 sys = 13.80 CPU) @ 724.64/s (n=10000)
html_escape: 7 wallclock secs ( 7.57 usr + 0.01 sys = 7.58 CPU) @ 1319.26/s (n=10000)
Вы можете получить эти тесты в Surveyor:: Benchmark :: HTMLEntities .Я объясняю , как я распространяю тесты , используя Surveyor :: App .