File Coverage

blib/lib/Env/Browser.pm
Criterion Covered Total %
statement 24 24 100.0
branch 6 6 100.0
condition n/a
subroutine 5 5 100.0
pod 1 1 100.0
total 36 36 100.0


line stmt bran cond sub pod time code
1             package Env::Browser;
2              
3             # Pragmas.
4 4     4   51463 use base qw(Exporter);
  4         9  
  4         582  
5 4     4   25 use strict;
  4         7  
  4         137  
6 4     4   20 use warnings;
  4         12  
  4         126  
7              
8             # Modules.
9 4     4   4276 use Readonly;
  4         14112  
  4         1071  
10              
11             # Constants.
12             Readonly::Array our @EXPORT_OK => qw(run);
13             Readonly::Scalar our $SPACE => q{ };
14              
15             # Version.
16             our $VERSION = 0.04;
17              
18             # Run browser.
19             sub run {
20 5     5 1 20039 my $uri = shift;
21              
22             # Environment $BROWSER variable.
23 5         22 my $browser_string = $ENV{'BROWSER'};
24 5 100       22 if (! $browser_string) {
25 1         12 return;
26             }
27              
28             # Split variables.
29 4         26 my @browser = split m/:/ms, $browser_string;
30              
31             # Run.
32 4         20 while (my $browser = shift @browser) {
33 6 100       65 if ($browser =~ m/%s/ms) {
34 2         25 $browser = sprintf $browser, $uri;
35             } else {
36 4         20 $browser .= $SPACE.$uri;
37             }
38 6 100       47945 if ((system $browser) == 0) {
39 4         44 last;
40             }
41             }
42              
43 4         304 return;
44             }
45              
46             1;
47              
48             __END__