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             ## use critic (NamingConventions::Capitalization)
3              
4             use strict;
5 1     1   386 use warnings;
  1         6  
  1         26  
6 1     1   5  
  1         2  
  1         50  
7             our $VERSION = '2.000000';
8              
9             use Import::Into;
10 1     1   392  
  1         2282  
  1         39  
11             # XXX - it'd be nice to include bareword::filehandles but this conflicts with
12             # autodie - see https://rt.cpan.org/Ticket/Display.html?id=93591
13             use autodie 2.25 ();
14 1     1   484 use IPC::System::Simple; # to fatalize system
  1         15345  
  1         23  
15 1     1   534 use experimental ();
  1         9866  
  1         50  
16 1     1   531 use feature ();
  1         2969  
  1         22  
17 1     1   7 use indirect ();
  1         2  
  1         12  
18 1     1   448 use mro ();
  1         986  
  1         20  
19 1     1   380 use multidimensional ();
  1         573  
  1         20  
20 1     1   410  
  1         1882  
  1         45  
21             # This adds the UTF-8 layer on STDIN, STDOUT, STDERR for _everyone_
22             use open qw( :encoding(UTF-8) :std );
23 1     1   399 use utf8 ();
  1         1035  
  1         5  
24 1     1   15466  
  1         13  
  1         175  
25             my $caller_level = 1;
26              
27 19     19   343184 strict->import::into($caller_level);
28             warnings->import::into($caller_level);
29 19         100  
30 19         1358 my @experiments = qw(
31             lexical_subs
32 19         1213 postderef
33             signatures
34             );
35             experimental->import::into( $caller_level, @experiments );
36              
37 19         166 my ($version) = $^V =~ /^v(5\.\d+)/;
38             feature->import::into( $caller_level, ':' . $version );
39 19         4225 ## no critic (Subroutines::ProhibitCallsToUnexportedSubs)
40 19         107 mro::set_mro( scalar caller(), 'c3' );
41             ## use critic
42 19         1597 utf8->import::into($caller_level);
43              
44 19         113 indirect->unimport::out_of( $caller_level, ':fatal' );
45             multidimensional->unimport::out_of($caller_level);
46 19         1398 'open'->import::into( $caller_level, ':encoding(UTF-8)' );
47 19         1754 autodie->import::into( $caller_level, ':all' );
48 19         1331 }
49 19         2572  
50             1;
51              
52             =pod
53              
54             =head1 NAME
55              
56             App::GHPT::Wrapper::Ourperl - Loads strict, warnings, and several other pragmas
57              
58             =head1 DESCRIPTION
59              
60             Using this wrapper is equivalent to the following:
61              
62             use strict;
63             use warnings;
64             use feature vX.XX; # where the version is equal to the perl binary's version
65              
66             use autodie ':all';
67             use mro 'c3';
68             use open ':encoding(UTF-8)', ':std';
69             use utf8;
70              
71             no indirect ':fatal';
72             no multidimensional;
73              
74             =cut