That
if ($output = `firefox`)
{print "no browser found\n"}
would mean that you invoke firefox, wait for firefox to exit and stuff its output into $output.
Meanwhile (while firefox is running) your application is blocked. Is that the intended behaviour?
What happens if the invocation fails? Most probably the shell will send an error message to its STDERR,
which you don't collect in $output. Bummer, no error message "no browser found"...
Collecting the output of a program that doesn't exist is no good to test its existence. A better approach would be
BROWSER: {
for my $dir (split /:/, $ENV{PATH}) {
for my $browser (qw(firefox mozilla opera konqueror)) {
if (-x "$dir/$browser") {
system "$dir/$browser" # or "$dir/$browser &" to bac
+kground
and die "running $browser returned $?\n";
last BROWSER;
}
}
}
print "no browser found.\n";
}
--shmem
_($_=" "x(1<<5)."?\n".q·/)Oo. G°\ /
/\_¯/(q /
---------------------------- \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
|