File Coverage

blib/lib/Email/Address/Loose/EmailValidLoose.pm
Criterion Covered Total %
statement 7 7 100.0
branch n/a
condition n/a
subroutine 3 3 100.0
pod 0 1 0.0
total 10 11 90.9


line stmt bran cond sub pod time code
1             package Email::Address::Loose::EmailValidLoose;
2              
3             # Note:
4             # The following code were copied from Email::Valid::Loose 0.05.
5             # http://search.cpan.org/perldoc?Email::Valid::Loose
6             # To make same behavior with Email::Valid::Loose about local-part.
7              
8              
9              
10              
11              
12 11     11   62 use strict;
  11         17  
  11         3178  
13             our $VERSION = '0.05';
14              
15             # use Email::Valid 0.17; # Note: don't need
16             # use base qw(Email::Valid); # Note: don't need
17              
18             # This is BNF from RFC822
19             my $esc = '\\\\';
20             my $period = '\.';
21             my $space = '\040';
22             my $open_br = '\[';
23             my $close_br = '\]';
24             my $nonASCII = '\x80-\xff';
25             my $ctrl = '\000-\037';
26             my $cr_list = '\n\015';
27             my $qtext = qq/[^$esc$nonASCII$cr_list\"]/; # "
28             my $dtext = qq/[^$esc$nonASCII$cr_list$open_br$close_br]/;
29             my $quoted_pair = qq<$esc>.qq<[^$nonASCII]>;
30             my $atom_char = qq/[^($space)<>\@,;:\".$esc$open_br$close_br$ctrl$nonASCII]/; # "
31             my $atom = qq<$atom_char+(?!$atom_char)>;
32             my $quoted_str = qq<\"$qtext*(?:$quoted_pair$qtext*)*\">; # "
33             my $word = qq<(?:$atom|$quoted_str)>;
34             my $domain_ref = $atom;
35             my $domain_lit = qq<$open_br(?:$dtext|$quoted_pair)*$close_br>;
36             my $sub_domain = qq<(?:$domain_ref|$domain_lit)>;
37             my $domain = qq<$sub_domain(?:$period$sub_domain)*>;
38             my $local_part = qq<$word(?:$word|$period)*>; # This part is modified
39              
40             # Finally, the address-spec regex (more or less)
41 11     11   61 use vars qw($Addr_spec_re);
  11         21  
  11         1474  
42             $Addr_spec_re = qr<$local_part\@$domain>;
43              
44 11     11 0 1078 sub peek_local_part { qr/$local_part/ } # Note: added by Email::Address::Loose
45             1;