File Coverage

blib/lib/Syntax/Operator/Matches.pm
Criterion Covered Total %
statement 26 29 89.6
branch 9 12 75.0
condition 3 6 50.0
subroutine 6 6 100.0
pod 0 1 0.0
total 44 54 81.4


line stmt bran cond sub pod time code
1             package Syntax::Operator::Matches 0.000003;
2              
3 4     4   1173180 use v5.38;
  4         18  
4 4     4   27 use warnings;
  4         9  
  4         223  
5              
6 4     4   25 use Carp;
  4         9  
  4         351  
7 4     4   2126 use match::simple;
  4         31712  
  4         35  
8              
9             require XSLoader;
10             XSLoader::load( __PACKAGE__, our $VERSION );
11              
12             sub import
13             {
14 4     4   53 my $class = shift;
15 4         14 my $caller = caller;
16              
17 4         19 $class->import_into( $caller, @_ );
18             }
19              
20             sub import_into
21             {
22 4     4 0 7 my $class = shift;
23 4         25 my ( $caller, @syms ) = @_;
24              
25 4 100       23 @syms or @syms = qw( matches );
26 4         18 my %syms = map { $_ => 1 } @syms;
  4         21  
27              
28 4 100 66     32 if ( $syms{'-all'} or $syms{':all'} ) {
29 2         7 $syms{matches} = $syms{mismatches} = 1;
30 2         10 delete $syms{$_} for qw/ -all :all /;
31             }
32              
33 4 50 33     31 if ( $syms{'-default'} or $syms{':default'} ) {
34 0         0 $syms{matches} = 1;
35 0         0 delete $syms{$_} for qw/ -default :default /;
36             }
37              
38 4 50       34 $^H{"Syntax::Operator::Matches/matches"}++ if delete $syms{matches};
39 4 100       19 $^H{"Syntax::Operator::Matches/mismatches"}++ if delete $syms{mismatches};
40              
41 4 50       4115 croak "Unrecognised import symbols @{[ keys %syms ]}" if keys %syms;
  0            
42             }
43              
44             1;
45             __END__