2) Using commands run the browser, open up the URL, use Perl script to take screenshots.

There are scripts that do that, but none of the UNIX compatible browsers can report back to an external application, when the URL that it's told to load has loaded. The freely available scripts that I have seen, use a time setting to do the screen shot. If the page hasn't loaded in that time, you get nothing. You would have to have a custom solution that embeds a browser engine, and therefore would have access to the events triggered by the page loading.