Ну, вы правы, что вам не следует разбирать HTML с помощью регулярных выражений. И поскольку это так, то, вероятно, это не будет «просто работать».
В идеале вам нужно использовать HTML-библиотеку для анализа и манипулирования. Не думайте, что HTML - это большая строка для манипулирования текстовыми функциями: это сериализованная, отформатированная структура данных. Вы должны использовать только , используя библиотеку для этой цели. Различные библиотеки уже исправили сотни ошибок, с которыми вы, вероятно, столкнетесь, что в миллион раз повышает вероятность того, что простая процедура HTML-манипуляции, написанная против них, будет «просто работать». Программисты Perl на уровне мастера, как правило, не разбирают HTML таким образом, и это не потому, что они одержимы и иррациональны в отношении качества и чистоты кода, а потому, что они знают, что новое изобретение колеса вряд ли приведет к чему-то столь же гладкому, как существующее оборудование.
Я рекомендую HTML :: Tree, потому что он работает так, как я думаю о HTML (и XML). Я думаю, что есть пара других библиотек, которые могут быть более популярными.
Настоящая правда в том, что если вы даже не можете заставить свою программу скомпилировать , вам нужно потратить немного больше времени (примерно полдня), чтобы выяснить основы, прежде чем искать Помогите. В вашем синтаксисе есть ошибка при использовании оператора подстановки регулярного выражения s /// g, и вам нужно выяснить, как это должно работать, прежде чем идти дальше. Это не сложно, и вы можете узнать, что вам нужно, из книги Camel, или из справочника perlretut, или из нескольких других источников. Если вы не научитесь отлаживать свою программу сейчас, то, скорее всего, любая помощь, которую вы здесь получите, просто приведет вас к следующей синтаксической ошибке, которую вы не сможете устранить.