File Coverage

blib/lib/Dpkg/Getopt.pm
Criterion Covered Total %
statement 20 20 100.0
branch 6 6 100.0
condition 9 9 100.0
subroutine 4 4 100.0
pod 0 1 0.0
total 39 40 97.5


line stmt bran cond sub pod time code
1             # Copyright © 2014 Guillem Jover
2             #
3             # This program is free software; you can redistribute it and/or modify
4             # it under the terms of the GNU General Public License as published by
5             # the Free Software Foundation; either version 2 of the License, or
6             # (at your option) any later version.
7             #
8             # This program is distributed in the hope that it will be useful,
9             # but WITHOUT ANY WARRANTY; without even the implied warranty of
10             # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11             # GNU General Public License for more details.
12             #
13             # You should have received a copy of the GNU General Public License
14             # along with this program. If not, see .
15              
16             package Dpkg::Getopt;
17              
18 1     1   71583 use strict;
  1         10  
  1         30  
19 1     1   5 use warnings;
  1         2  
  1         67  
20              
21             our $VERSION = '0.02';
22             our @EXPORT = qw(
23             normalize_options
24             );
25              
26 1     1   7 use Exporter qw(import);
  1         3  
  1         214  
27              
28             sub normalize_options
29             {
30 3     3 0 1556 my (%opts) = @_;
31 3         6 my $norm = 1;
32 3         5 my @args;
33              
34             @args = map {
35 14 100 100     77 if ($norm and m/^(-[A-Za-z])(.+)$/) {
    100 100        
36 3         9 ($1, $2)
37             } elsif ($norm and m/^(--[A-Za-z-]+)=(.*)$/) {
38 2         7 ($1, $2)
39             } else {
40 9 100 100     28 $norm = 0 if defined $opts{delim} and $_ eq $opts{delim};
41 9         18 $_;
42             }
43 3         5 } @{$opts{args}};
  3         8  
44              
45 3         17 return @args;
46             }
47              
48             1;