line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Parse::CPAN::Authors; |
2
|
2
|
|
|
2
|
|
10463
|
use strict; |
|
2
|
|
|
|
|
6
|
|
|
2
|
|
|
|
|
74
|
|
3
|
2
|
|
|
2
|
|
1101
|
use IO::Zlib; |
|
2
|
|
|
|
|
144905
|
|
|
2
|
|
|
|
|
16
|
|
4
|
2
|
|
|
2
|
|
1712
|
use Parse::CPAN::Authors::Author; |
|
2
|
|
|
|
|
6
|
|
|
2
|
|
|
|
|
16
|
|
5
|
2
|
|
|
2
|
|
93
|
use base qw( Class::Accessor::Fast ); |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
179
|
|
6
|
|
|
|
|
|
|
__PACKAGE__->mk_accessors(qw( mailrc data )); |
7
|
2
|
|
|
2
|
|
13
|
use vars qw($VERSION); |
|
2
|
|
|
|
|
3
|
|
|
2
|
|
|
|
|
1099
|
|
8
|
|
|
|
|
|
|
$VERSION = '2.27'; |
9
|
|
|
|
|
|
|
|
10
|
|
|
|
|
|
|
sub new { |
11
|
6
|
|
|
6
|
1
|
203442
|
my $class = shift; |
12
|
6
|
|
|
|
|
15
|
my $filename = shift; |
13
|
6
|
|
|
|
|
13
|
my $self = {}; |
14
|
6
|
|
|
|
|
20
|
bless $self, $class; |
15
|
|
|
|
|
|
|
|
16
|
6
|
100
|
|
|
|
26
|
$filename = '01mailrc.txt.gz' if not defined $filename; |
17
|
|
|
|
|
|
|
|
18
|
6
|
100
|
|
|
|
33
|
if ( $filename =~ /^alias / ) { |
|
|
100
|
|
|
|
|
|
19
|
1
|
|
|
|
|
25
|
$self->mailrc($filename); |
20
|
|
|
|
|
|
|
} elsif ( $filename =~ /\.gz/ ) { |
21
|
3
|
|
|
|
|
28
|
my $fh = IO::Zlib->new( $filename, "rb" ); |
22
|
3
|
100
|
|
|
|
6504
|
die "Failed to read $filename: $!" unless $fh; |
23
|
2
|
|
|
|
|
15
|
$self->mailrc( join '', <$fh> ); |
24
|
2
|
|
|
|
|
2474
|
$fh->close; |
25
|
|
|
|
|
|
|
} else { |
26
|
2
|
100
|
|
|
|
165
|
open( IN, $filename ) || die "Failed to read $filename: $!"; |
27
|
1
|
|
|
|
|
120624
|
$self->mailrc( join '', ); |
28
|
1
|
|
|
|
|
32
|
close(IN); |
29
|
|
|
|
|
|
|
} |
30
|
|
|
|
|
|
|
|
31
|
4
|
|
|
|
|
345
|
$self->_parse; |
32
|
|
|
|
|
|
|
|
33
|
4
|
|
|
|
|
36
|
return $self; |
34
|
|
|
|
|
|
|
} |
35
|
|
|
|
|
|
|
|
36
|
|
|
|
|
|
|
sub _parse { |
37
|
4
|
|
|
4
|
|
10
|
my $self = shift; |
38
|
4
|
|
|
|
|
9
|
my $data; |
39
|
|
|
|
|
|
|
|
40
|
4
|
|
|
|
|
17
|
foreach my $line ( split "\n", $self->mailrc ) { |
41
|
40
|
|
|
|
|
200
|
my ( $alias, $pauseid, $long ) = split ' ', $line, 3; |
42
|
40
|
|
|
|
|
160
|
$long =~ s/^"//; |
43
|
40
|
|
|
|
|
126
|
$long =~ s/"$//; |
44
|
40
|
|
|
|
|
180
|
my ($name, $email) = $long =~ /(.*) <(.+)>$/; |
45
|
40
|
|
|
|
|
152
|
my $a = Parse::CPAN::Authors::Author->new; |
46
|
40
|
|
|
|
|
532
|
$a->pauseid($pauseid); |
47
|
40
|
|
|
|
|
299
|
$a->name($name); |
48
|
40
|
|
|
|
|
253
|
$a->email($email); |
49
|
40
|
|
|
|
|
281
|
$data->{$pauseid} = $a; |
50
|
|
|
|
|
|
|
} |
51
|
4
|
|
|
|
|
21
|
$self->data($data); |
52
|
|
|
|
|
|
|
} |
53
|
|
|
|
|
|
|
|
54
|
|
|
|
|
|
|
sub author { |
55
|
8
|
|
|
8
|
1
|
12692
|
my ( $self, $pauseid ) = @_; |
56
|
8
|
|
|
|
|
34
|
return $self->data->{$pauseid}; |
57
|
|
|
|
|
|
|
} |
58
|
|
|
|
|
|
|
|
59
|
|
|
|
|
|
|
sub authors { |
60
|
4
|
|
|
4
|
1
|
7815
|
my ($self) = @_; |
61
|
4
|
|
|
|
|
9
|
return values %{ $self->data }; |
|
4
|
|
|
|
|
18
|
|
62
|
|
|
|
|
|
|
} |
63
|
|
|
|
|
|
|
|
64
|
|
|
|
|
|
|
1; |
65
|
|
|
|
|
|
|
|
66
|
|
|
|
|
|
|
__END__ |