File Coverage

blib/lib/Text/LooksLike.pm
Criterion Covered Total %
statement 12 29 41.3
branch 0 16 0.0
condition n/a
subroutine 4 5 80.0
pod 1 1 100.0
total 17 51 33.3


line stmt bran cond sub pod time code
1             package Text::LooksLike;
2 1     1   715 use warnings;
  1         2  
  1         32  
3 1     1   6 use strict;
  1         1  
  1         18  
4 1     1   4 use Carp;
  1         2  
  1         52  
5 1     1   5 use utf8;
  1         2  
  1         5  
6             require Exporter;
7             our @ISA = qw(Exporter);
8             our @EXPORT_OK = qw/looks_like/;
9             our %EXPORT_TAGS = (
10             all => \@EXPORT_OK,
11             );
12              
13             our $VERSION = '0.00_01';
14              
15             our $database_command = qr!
16             union
17             |
18             select
19             |
20             drop\s+table
21             |
22             sleep\s*\(
23             |
24             order\s+by
25             !xi;
26              
27             our $hate_mail = qr!
28             kill\s+yourself
29             !xi;
30              
31             our $up_path = qr!
32             (\.\./)+
33             !x;
34              
35             our $phone_number = qr!^
36             (?:\+?[0-9]+)?
37             \s*
38             (?:
39             \(\s*[0-9]+\s*\)
40             |
41             [0-9]+
42             )
43             \s*
44             (?:
45             [0-9]+
46             \s*
47             (?:-|\s)
48             \s*
49             )+
50             [0-9]+\s*$
51             !x;
52              
53             our $javascript = qr!
54            
55             !x;
56              
57             our $url = qr!
58             https?://
59             !xi;
60              
61             our $spam = qr!
62             top\s+rated\s+seller
63             |
64             buy\s+it\s+now
65             !xi;
66              
67             our $email = qr!
68             \@[a-z]+\.[a-z]+
69             !xi;
70              
71             our $file = qr!
72             ^\s*
73             \S+
74             \.
75             (xml|js|json)
76             \s*$
77             !x;
78              
79             sub looks_like
80             {
81 0     0 1   my ($text) = @_;
82 0 0         if ($text =~ $database_command) {
83 0           return "database command";
84             }
85 0 0         if ($text =~ $hate_mail) {
86 0           return "hate mail";
87             }
88 0 0         if ($text =~ $up_path) {
89 0           return "directory path";
90             }
91 0 0         if ($text =~ $phone_number) {
92 0           return "phone number";
93             }
94 0 0         if ($text =~ $javascript) {
95 0           return "javascript";
96             }
97 0 0         if ($text =~ $url) {
98 0           return "url";
99             }
100 0 0         if ($text =~ $spam) {
101 0           return "spam";
102             }
103 0 0         if ($text =~ $file) {
104 0           return "file";
105             }
106             }
107              
108             1;