I've done a lot of web scraping with Mojolicious' Mojo::UserAgent:
http://mojolicious.org/perldoc/Mojo/UserAgent
as the example shows it's as simple as:
use Mojo::UserAgent;
my $ua = Mojo::UserAgent->new;
say $ua->get('blogs.perl.org')->res->dom->find('h2 > a')->map('text')->join("\n");
If you need to execute JS, then CasperJS looks good.