Env-Browser

 view release on metacpan or  search on metacpan

Browser.pm  view on Meta::CPAN

package Env::Browser;

use base qw(Exporter);
use strict;
use warnings;

use Readonly;

# Constants.
Readonly::Array our @EXPORT_OK => qw(run);
Readonly::Scalar our $SPACE => q{ };

our $VERSION = 0.06;

# Run browser.
sub run {
	my $uri = shift;

	# Environment $BROWSER variable.
	my $browser_string = $ENV{'BROWSER'};
	if (! $browser_string) {
		return;
	}

	# Split variables.
	my @browser = split m/:/ms, $browser_string;

	# Run.
	while (my $browser = shift @browser) {
		if ($browser =~ m/%s/ms) {
			$browser = sprintf $browser, $uri;
		} else {
			$browser .= $SPACE.$uri;
		}
		if ((system $browser) == 0) {
			last;
		}
	}

	return;
}

1;

__END__

=pod

=encoding utf8

=head1 NAME

Env::Browser - Process environment variable $BROWSER and run web browser.

=head1 SYNOPSIS

 use Env::Browser qw(run);

 run($uri);

=head1 SUBROUTINES

=over 8

=item B<run($uri)>

 Run browser defined by $BROWSER variable.

=back

=head1 ENVIRONMENT

 $BROWSER variable is defined by L<The BROWSER project|http://www.catb.org/~esr/BROWSER/index.html>.

=head1 EXAMPLE1

 use strict;
 use warnings;

 use Env::Browser qw(run);

 # Set $BROWSER variable.
 $ENV{'BROWSER'} = 'echo';

 # Run.
 run('http://example.com');



( run in 0.756 second using v1.01-cache-2.11-cpan-71847e10f99 )