my $linkurl = 'http://zentara.net'; my $command = "mozilla -remote \"openURL($linkurl)\""; if(fork() == 0){ exec ($command) }
UPDATE.. here is a little better script that will do local files too. There is a way to select between new-tabs and new-windows, but I didn't make a commandline switch for it. There are also some special syntax differences for firefox, which I don't use. So all, in all, if you could incorporate all the possibilites for IE,Mozilla, Firefox,etc, and have it auto detect urls or local files, you would have a cool module. Maybe Browser::AutoLoad? :-)
#!/usr/bin/perl -w use strict; use Cwd; my $pid; my @docs; if(@ARGV){ my $cwd = getcwd; foreach my $arg(@ARGV){ if( $arg =~ /^http:\/\/.*$/ ){ push @docs, $arg } else{ push @docs , "file://$cwd/$arg" } } } else{ #load defaults @docs = qw( file:///home/zentara/1down/1GET http://www.google.com ); } # Look for instance of mozilla. `mozilla -remote "ping()"`; if ( $? ) { # Error, mozilla is not running. if (!defined($pid = fork())) { # Undef branch of fork: die "Cannot fork: $!"; } elsif ($pid == 0) { # Child branch of fork: `mozilla`; # Start new instance.... } else { # Parent branch of fork: do { `mozilla -remote "ping()"`; #sleep 1; select(undef,undef,undef,.5); } while ( $? ); #sleep 1; #give mozilla some time select(undef,undef,undef,.5); load_docs(); $pid=waitpid($pid, 0); # Wait for the pseudo-process # containing the new mozilla instance # to end. } } else { load_docs(); } ############################################################### sub load_docs { my $element; foreach (0..$#docs){ if ( $docs[$_] =~ /~file:\/\// ) { `mozilla -remote "openFile($docs[$_], new-tab)"` ; #`mozilla -remote "openFile($docs[$_], new-window)"` ; } else { `mozilla -remote "openURL($docs[$_], new-tab)"` ; # `mozilla -remote "openURL($docs[$_], new-window)"` ; } } }
In reply to Re: Launch CPAN search in browser from Windows command shell
by zentara
in thread Launch CPAN search in browser from Windows command shell
by xdg
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |