Czemu w Perlu akurat?
IMO szedłbym w JS i wykorzystał do tego phantom.js. Dlaczego? Bo to de facto pełnoprawna przeglądarka internetowa - z tym, że zamiast interfejsu graficznego dostajesz skryptowalne zachowanie ;)
Żeby poprawnie zinterpretować zawartość strony WWW należy wygenerować drzewko DOM. Problem pojawia się wówczas, gdy do wygenerowania tego drzewka potrzebna jest interpretacja JS (bo np. część danych dociągana jest Ajaksem). Wówczas Perl wymięknie, a phantom.js poradzi sobie wyśmienicie.
Jeśli natomiast chcesz traktować stronę po prostu jako kod i dane dociągane JS-em Cię nie interesują, to i tak lepiej zdać się na narzędzia generujące DOM, a nie babrać się z regexami:
http://stackoverflow.com/a/1732454