Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hello I have two questions; 1- Given an url to a program, what is the method or library which I can use to command the program to open that url with that computers native browser? 2- I want to check an url once a while if a given calculation is performed. Is sleep the best method to use or are there more advanced methods for such purposes? Thanks in advance for your wisdom Sina

Replies are listed 'Best First'.
Re: Opening Given Urls and Sleep
by Joost (Canon) on Jan 29, 2008 at 20:54 UTC
    I have two sort of answers:

    1. Really portably, I don't know. On debian /etc/alternatives/www-browser is a symlink to the configured system browser. It gives no hints on what arguments to provide, though most browsers will probably accept a plain url. You may want to check out Selenium which has methods for starting most browsers on a lot of systems. It's in Java, but you may be able to learn some tricks. See also WWW::Selenium for the perl interface.

    2. What do you mean by "check an url once a while if a given calculation is performed"? If you just want to check a url periodically for changes, you can use sleep, or - on unix - use a crontab entry to run the program periodically. You may also want to check WWW::Mechanize which will give you a nice interface for programmatic web scraping (it's much easier to install than WWW::Selenium but it does not support javascript and some other things that may or may not be relevant to you).

Re: Opening Given Urls and Sleep
by ikegami (Patriarch) on Jan 29, 2008 at 18:14 UTC
Re: Opening Given Urls and Sleep
by kyle (Abbot) on Jan 29, 2008 at 18:07 UTC

    Using sleep is fine if you want to sleep some number of whole seconds. If you need finer control over the sleep time, use Time::HiRes (usleep or nanosleep).

    Update: Your other question might be answered in opening browser from script.

Re: Opening Given Urls and Sleep
by nikosv (Deacon) on Jan 30, 2008 at 20:15 UTC
    If you're on windows you can use the value of the registry key
    'HKEY_CLASSES_ROOT\http\shell\open\command' which gives the default program for handling http=the browser,
    using a module such as Win32::TieRegistry,and then use Win32::OLE to pass the url to the browser.
    Let'say that the default browser is IE so :
    $IE=Win32::OLE->new("InternetExplorer.Application") or die "could not +start browser"; $IE->{visible}=1; $IE->Navigate("$url");
Re: Opening Given Urls and Sleep
by Anonymous Monk on Jan 29, 2008 at 18:06 UTC
    I would also like to add that I have been studying lwp for some web automation but have not yet come to see a method adressing my problem above. Thanks, Sina