File Coverage

blib/lib/App/GHPT/Wrapper/Ourperl.pm
Criterion Covered Total %
statement 49 49 100.0
branch n/a
condition n/a
subroutine 13 13 100.0
pod n/a
total 62 62 100.0


line stmt bran cond sub pod time code
1             ## no critic (NamingConventions::Capitalization)
2             package App::GHPT::Wrapper::Ourperl;
3             ## use critic (NamingConventions::Capitalization)
4              
5 1     1   430 use strict;
  1         8  
  1         32  
6 1     1   5 use warnings;
  1         2  
  1         97  
7              
8             our $VERSION = '1.000012';
9              
10 1     1   465 use Import::Into;
  1         2711  
  1         35  
11              
12             # XXX - it'd be nice to include bareword::filehandles but this conflicts with
13             # autodie - see https://rt.cpan.org/Ticket/Display.html?id=93591
14 1     1   588 use autodie 2.25 ();
  1         16354  
  1         29  
15 1     1   628 use IPC::System::Simple; # to fatalize system
  1         12749  
  1         53  
16 1     1   620 use experimental ();
  1         3479  
  1         24  
17 1     1   7 use feature ();
  1         2  
  1         13  
18 1     1   455 use indirect ();
  1         1113  
  1         23  
19 1     1   433 use mro ();
  1         746  
  1         26  
20 1     1   430 use multidimensional ();
  1         2168  
  1         32  
21              
22             # This adds the UTF-8 layer on STDIN, STDOUT, STDERR for _everyone_
23 1     1   469 use open qw( :encoding(UTF-8) :std );
  1         1276  
  1         7  
24 1     1   13998 use utf8 ();
  1         16  
  1         220  
25              
26             sub import {
27 19     19   506688 my $caller_level = 1;
28              
29 19         121 strict->import::into($caller_level);
30 19         1719 warnings->import::into($caller_level);
31              
32 19         1516 my @experiments = qw(
33             lexical_subs
34             postderef
35             signatures
36             );
37 19         142 experimental->import::into( $caller_level, @experiments );
38              
39 19         5271 my ($version) = $^V =~ /^v(5\.\d+)/;
40 19         139 feature->import::into( $caller_level, ':' . $version );
41             ## no critic (Subroutines::ProhibitCallsToUnexportedSubs)
42 19         2085 mro::set_mro( scalar caller(), 'c3' );
43             ## use critic
44 19         136 utf8->import::into($caller_level);
45              
46 19         1705 indirect->unimport::out_of( $caller_level, ':fatal' );
47 19         2267 multidimensional->unimport::out_of($caller_level);
48 19         1691 'open'->import::into( $caller_level, ':encoding(UTF-8)' );
49 19         2996 autodie->import::into( $caller_level, ':all' );
50             }
51              
52             1;
53              
54             =pod
55              
56             =head1 NAME
57              
58             App::GHPT::Wrapper::Ourperl - Loads strict, warnings, and several other pragmas
59              
60             =head1 DESCRIPTION
61              
62             Using this wrapper is equivalent to the following:
63              
64             use strict;
65             use warnings;
66             use feature vX.XX; # where the version is equal to the perl binary's version
67              
68             use autodie ':all';
69             use mro 'c3';
70             use open ':encoding(UTF-8)', ':std';
71             use utf8;
72              
73             no indirect ':fatal';
74             no multidimensional;
75              
76             =cut