File Coverage

blib/lib/Pistachio/Keywords/Perl5.pm
Criterion Covered Total %
statement 11 11 100.0
branch 2 2 100.0
condition n/a
subroutine 4 4 100.0
pod 0 1 0.0
total 17 18 94.4


line stmt bran cond sub pod time code
1             package Pistachio::Keywords::Perl5;
2             # ABSTRACT: provides is_keyword()
3              
4 3     3   15 use strict;
  3         7  
  3         100  
5 3     3   14 use warnings;
  3         6  
  3         122  
6             our $VERSION = '0.10'; # VERSION
7              
8 3     3   15 use Exporter 'import';
  3         5  
  3         4568  
9             our @EXPORT_OK = qw(is_keyword);
10              
11             # keywords
12             my %words = (
13             '$!' => 1,
14             '$"' => 1,
15             '$#' => 1,
16             '$$' => 1,
17             '$%' => 1,
18             '$&' => 1,
19             '$\'' => 1,
20             '$(' => 1,
21             '$)' => 1,
22             '$*' => 1,
23             '$+' => 1,
24             '$,' => 1,
25             '$-' => 1,
26             '$.' => 1,
27             '$/' => 1,
28             '$0' => 1,
29             '$:' => 1,
30             '$;' => 1,
31             '$<' => 1,
32             '$=' => 1,
33             '$>' => 1,
34             '$?' => 1,
35             '$@' => 1,
36             '$ACCUMULATOR' => 1,
37             '$ARG' => 1,
38             '$ARGV' => 1,
39             '$BASETIME' => 1,
40             '$CHILD_ERROR' => 1,
41             '$COMPILING' => 1,
42             '$DEBUGGING' => 1,
43             '$EFFECTIVE_GROUP_ID' => 1,
44             '$EFFECTIVE_USER_ID' => 1,
45             '$EGID' => 1,
46             '$ERRNO' => 1,
47             '$EUID' => 1,
48             '$EVAL_ERROR' => 1,
49             '$EXCEPTIONS_BEING_CAUGHT' => 1,
50             '$EXECUTABLE_NAME' => 1,
51             '$EXTENDED_OS_ERROR' => 1,
52             '$FORMAT_FORMFEED' => 1,
53             '$FORMAT_LINES_LEFT' => 1,
54             '$FORMAT_LINES_PER_PAGE' => 1,
55             '$FORMAT_LINE_BREAK_CHARACTERS' => 1,
56             '$FORMAT_NAME' => 1,
57             '$FORMAT_PAGE_NUMBER' => 1,
58             '$FORMAT_TOP_NAME' => 1,
59             '$GID' => 1,
60             '$INPLACE_EDIT' => 1,
61             '$INPUT_LINE_NUMBER' => 1,
62             '$INPUT_RECORD_SEPARATOR' => 1,
63             '$LAST_MATCH_END' => 1,
64             '$LAST_PAREN_MATCH' => 1,
65             '$LAST_REGEXP_CODE_RESULT' => 1,
66             '$LIST_SEPARATOR' => 1,
67             '$MATCH' => 1,
68             '$MULTILINE_MATCHING' => 1,
69             '$NR' => 1,
70             '$OFMT' => 1,
71             '$OFS' => 1,
72             '$ORS' => 1,
73             '$OSNAME' => 1,
74             '$OS_ERROR' => 1,
75             '$OUTPUT_AUTO_FLUSH' => 1,
76             '$OUTPUT_FIELD_SEPARATOR' => 1,
77             '$OUTPUT_RECORD_SEPARATOR' => 1,
78             '$PERLDB' => 1,
79             '$PERL_VERSION' => 1,
80             '$PID' => 1,
81             '$POSTMATCH' => 1,
82             '$PREMATCH' => 1,
83             '$PROCESS_ID' => 1,
84             '$PROGRAM_NAME' => 1,
85             '$REAL_GROUP_ID' => 1,
86             '$REAL_USER_ID' => 1,
87             '$RS' => 1,
88             '$SUBSCRIPT_SEPARATOR' => 1,
89             '$SUBSEP' => 1,
90             '$SYSTEM_FD_MAX' => 1,
91             '$UID' => 1,
92             '$WARNING' => 1,
93             '$[' => 1,
94             '$]' => 1,
95             '$^' => 1,
96             '$^A' => 1,
97             '$^C' => 1,
98             '$^CHILD_ERROR_NATIVE' => 1,
99             '$^D' => 1,
100             '$^E' => 1,
101             '$^ENCODING' => 1,
102             '$^F' => 1,
103             '$^H' => 1,
104             '$^I' => 1,
105             '$^L' => 1,
106             '$^M' => 1,
107             '$^N' => 1,
108             '$^O' => 1,
109             '$^OPEN' => 1,
110             '$^P' => 1,
111             '$^R' => 1,
112             '$^RE_DEBUG_FLAGS' => 1,
113             '$^RE_TRIE_MAXBUF' => 1,
114             '$^S' => 1,
115             '$^T' => 1,
116             '$^TAINT' => 1,
117             '$^UNICODE' => 1,
118             '$^UTF8LOCALE' => 1,
119             '$^V' => 1,
120             '$^W' => 1,
121             '$^WARNING_BITS' => 1,
122             '$^WIDE_SYSTEM_CALLS' => 1,
123             '$^X' => 1,
124             '$_' => 1,
125             '$`' => 1,
126             '$a' => 1,
127             '$b' => 1,
128             '$|' => 1,
129             '$~' => 1,
130             '%!' => 1,
131             '%+' => 1,
132             '%-' => 1,
133             '%ENV' => 1,
134             '%INC' => 1,
135             '%OVERLOAD' => 1,
136             '%SIG' => 1,
137             '%^H' => 1,
138             '-A' => 1,
139             '-B' => 1,
140             '-C' => 1,
141             '-M' => 1,
142             '-O' => 1,
143             '-R' => 1,
144             '-S' => 1,
145             '-T' => 1,
146             '-W' => 1,
147             '-X' => 1,
148             '-b' => 1,
149             '-c' => 1,
150             '-d' => 1,
151             '-e' => 1,
152             '-f' => 1,
153             '-g' => 1,
154             '-k' => 1,
155             '-l' => 1,
156             '-o' => 1,
157             '-p' => 1,
158             '-r' => 1,
159             '-s' => 1,
160             '-t' => 1,
161             '-u' => 1,
162             '-w' => 1,
163             '-x' => 1,
164             '-z' => 1,
165             '1' => 1,
166             '2' => 1,
167             '3' => 1,
168             '4' => 1,
169             '5' => 1,
170             '6' => 1,
171             '7' => 1,
172             '8' => 1,
173             '9' => 1,
174             ':bytes' => 1,
175             ':crlf' => 1,
176             ':mmap' => 1,
177             ':perlio' => 1,
178             ':pop' => 1,
179             ':raw' => 1,
180             ':stdio' => 1,
181             ':unix' => 1,
182             ':utf8' => 1,
183             ':win32' => 1,
184             '@+' => 1,
185             '@-' => 1,
186             '@ARGV' => 1,
187             '@F' => 1,
188             '@INC' => 1,
189             '@LAST_MATCH_START' => 1,
190             '@_' => 1,
191             'ACCUMULATOR' => 1,
192             'ARG' => 1,
193             'ARGV' => 1,
194             'ARGVOUT' => 1,
195             'AUTOLOAD' => 1,
196             'BASETIME' => 1,
197             'BEGIN' => 1,
198             'CHECK' => 1,
199             'CHILD_ERROR' => 1,
200             'CHILD_ERROR_NATIVE' => 1,
201             'CLEAR' => 1,
202             'CLOSE' => 1,
203             'COMPILING' => 1,
204             'CORE' => 1,
205             'DATA' => 1,
206             'DEBUGGING' => 1,
207             'DELETE' => 1,
208             'DESTROY' => 1,
209             'EFFECTIVE_GROUP_ID' => 1,
210             'EFFECTIVE_USER_ID' => 1,
211             'EGID' => 1,
212             'ENCODING' => 1,
213             'END' => 1,
214             'ENV' => 1,
215             'ERRNO' => 1,
216             'EUID' => 1,
217             'EVAL_ERROR' => 1,
218             'EXCEPTIONS_BEING_CAUGHT' => 1,
219             'EXECUTABLE_NAME' => 1,
220             'EXISTS' => 1,
221             'EXTEND' => 1,
222             'EXTENDED_OS_ERROR' => 1,
223             'FETCH' => 1,
224             'FETCHSIZE' => 1,
225             'FIRSTKEY' => 1,
226             'FORMAT_FORMFEED' => 1,
227             'FORMAT_LINES_LEFT' => 1,
228             'FORMAT_LINES_PER_PAGE' => 1,
229             'FORMAT_LINE_BREAK_CHARACTERS' => 1,
230             'FORMAT_NAME' => 1,
231             'FORMAT_PAGE_NUMBER' => 1,
232             'FORMAT_TOP_NAME' => 1,
233             'File' => 1,
234             'GETC' => 1,
235             'GID' => 1,
236             'GetOptions' => 1,
237             'HOME' => 1,
238             'Handles' => 1,
239             'INC' => 1,
240             'INIT' => 1,
241             'INPLACE_EDIT' => 1,
242             'INPUT_LINE_NUMBER' => 1,
243             'INPUT_RECORD_SEPARATOR' => 1,
244             'ISA' => 1,
245             'LAST_MATCH_END' => 1,
246             'LAST_MATCH_START' => 1,
247             'LAST_PAREN_MATCH' => 1,
248             'LAST_REGEXP_CODE_RESULT' => 1,
249             'LAST_SUBMATCH_RESULT' => 1,
250             'LIST_SEPARATOR' => 1,
251             'LOGDIR' => 1,
252             'MATCH' => 1,
253             'MULTILINE_MATCHING' => 1,
254             'Misc' => 1,
255             'NEXTKEY' => 1,
256             'NR' => 1,
257             'OFS' => 1,
258             'OPEN' => 1,
259             'ORS' => 1,
260             'OSNAME' => 1,
261             'OS_ERROR' => 1,
262             'OUTPUT_AUTOFLUSH' => 1,
263             'OUTPUT_FIELD_SEPARATOR' => 1,
264             'OUTPUT_RECORD_SEPARATOR' => 1,
265             'PATH' => 1,
266             'PERL5DB' => 1,
267             'PERL5DB_THREADED' => 1,
268             'PERL5LIB' => 1,
269             'PERL5OPT' => 1,
270             'PERL5SHELL' => 1,
271             'PERLDB' => 1,
272             'PERLIO' => 1,
273             'PERLIO_DEBUG' => 1,
274             'PERLLIB' => 1,
275             'PERL_ALLOW_NON_IFS_LSP' => 1,
276             'PERL_DEBUG_MSTATS' => 1,
277             'PERL_DESTRUCT_LEVEL' => 1,
278             'PERL_DL_NONLAZY' => 1,
279             'PERL_ENCODING' => 1,
280             'PERL_HASH_SEED' => 1,
281             'PERL_HASH_SEED_DEBUG' => 1,
282             'PERL_ROOT' => 1,
283             'PERL_SIGNALS' => 1,
284             'PERL_UNICODE' => 1,
285             'PERL_VERSION' => 1,
286             'PID' => 1,
287             'POP' => 1,
288             'POSTMATCH' => 1,
289             'PREMATCH' => 1,
290             'PRINT' => 1,
291             'PRINTF' => 1,
292             'PROCESS_ID' => 1,
293             'PROGRAM_NAME' => 1,
294             'PUSH' => 1,
295             'Perl' => 1,
296             'READ' => 1,
297             'READLINE' => 1,
298             'REAL_GROUP_ID' => 1,
299             'REAL_USER_ID' => 1,
300             'RE_DEBUG_FLAGS' => 1,
301             'RE_TRIE_MAXBUF' => 1,
302             'RS' => 1,
303             'SHIFT' => 1,
304             'SIG' => 1,
305             'SKIP:' => 1,
306             'SPLICE' => 1,
307             'STDERR' => 1,
308             'STDIN' => 1,
309             'STDOUT' => 1,
310             'STORE' => 1,
311             'STORESIZE' => 1,
312             'SUBSCRIPT_SEPARATOR' => 1,
313             'SUBSEP' => 1,
314             'SYSTEM_FD_MAX' => 1,
315             'TAINT' => 1,
316             'TIEARRAY' => 1,
317             'TIEHANDLE' => 1,
318             'TIEHASH' => 1,
319             'TIESCALAR' => 1,
320             'TODO:' => 1,
321             'UID' => 1,
322             'UNICODE' => 1,
323             'UNITCHECK' => 1,
324             'UNSHIFT' => 1,
325             'UNTIE' => 1,
326             'UTF8CACHE' => 1,
327             'UTF8LOCALE' => 1,
328             'VERSION' => 1,
329             'WARNING' => 1,
330             'WARNING_BITS' => 1,
331             'WIN32_SLOPPY_STAT' => 1,
332             'WRITE' => 1,
333             '_' => 1,
334             '__DATA__' => 1,
335             '__DIE__' => 1,
336             '__END__' => 1,
337             '__FILE__' => 1,
338             '__LINE__' => 1,
339             '__PACKAGE__' => 1,
340             '__WARN__' => 1,
341             'a' => 1,
342             'abs' => 1,
343             'abs2rel' => 1,
344             'accept' => 1,
345             'alarm' => 1,
346             'and' => 1,
347             'atan2' => 1,
348             'b' => 1,
349             'back' => 1,
350             'basename' => 1,
351             'begin' => 1,
352             'bind' => 1,
353             'binmode' => 1,
354             'bless' => 1,
355             'break' => 1,
356             'builder' => 1,
357             'caller' => 1,
358             'can' => 1,
359             'can_ok' => 1,
360             'canonpath' => 1,
361             'carp' => 1,
362             'case_tolerant' => 1,
363             'catdir' => 1,
364             'catfile' => 1,
365             'catpath' => 1,
366             'chdir' => 1,
367             'chmod' => 1,
368             'chomp' => 1,
369             'chop' => 1,
370             'chown' => 1,
371             'chr' => 1,
372             'chroot' => 1,
373             'close' => 1,
374             'closedir' => 1,
375             'cluck' => 1,
376             'cmp' => 1,
377             'cmp_ok' => 1,
378             'confess' => 1,
379             'connect' => 1,
380             'continue' => 1,
381             'copy' => 1,
382             'cos' => 1,
383             'cp' => 1,
384             'croak' => 1,
385             'crypt' => 1,
386             'curdir' => 1,
387             'cut' => 1,
388             'dbmclose' => 1,
389             'dbmopen' => 1,
390             'defined' => 1,
391             'delete' => 1,
392             'devnull' => 1,
393             'diag' => 1,
394             'die' => 1,
395             'dirname' => 1,
396             'do' => 1,
397             'dump' => 1,
398             'each' => 1,
399             'else' => 1,
400             'elsif' => 1,
401             'end' => 1,
402             'endgrent' => 1,
403             'endhostent' => 1,
404             'endnetent' => 1,
405             'endprotoent' => 1,
406             'endpwent' => 1,
407             'endservent' => 1,
408             'eof' => 1,
409             'eq' => 1,
410             'eq_array' => 1,
411             'eq_hash' => 1,
412             'eq_set' => 1,
413             'eval' => 1,
414             'exec' => 1,
415             'exists' => 1,
416             'exit' => 1,
417             'exp' => 1,
418             'fail' => 1,
419             'fcntl' => 1,
420             'file_name_is_absolute' => 1,
421             'fileno' => 1,
422             'fileparse' => 1,
423             'fileparse_set_fstype' => 1,
424             'find' => 1,
425             'finddepth' => 1,
426             'flock' => 1,
427             'for' => 1,
428             'foreach' => 1,
429             'fork' => 1,
430             'format' => 1,
431             'formline' => 1,
432             'freeze' => 1,
433             'ge' => 1,
434             'getc' => 1,
435             'getgrent' => 1,
436             'getgrgid' => 1,
437             'getgrnam' => 1,
438             'gethostbyaddr' => 1,
439             'gethostbyname' => 1,
440             'gethostent' => 1,
441             'getlogin' => 1,
442             'getnetbyaddr' => 1,
443             'getnetbyname' => 1,
444             'getnetent' => 1,
445             'getpeername' => 1,
446             'getpgrp' => 1,
447             'getppid' => 1,
448             'getpriority' => 1,
449             'getprotobyname' => 1,
450             'getprotobynumber' => 1,
451             'getprotoent' => 1,
452             'getpwent' => 1,
453             'getpwnam' => 1,
454             'getpwuid' => 1,
455             'getservbyname' => 1,
456             'getservbyport' => 1,
457             'getservent' => 1,
458             'getsockname' => 1,
459             'getsockopt' => 1,
460             'glob' => 1,
461             'gmtime' => 1,
462             'goto' => 1,
463             'grep' => 1,
464             'gt' => 1,
465             'head1' => 1,
466             'head2' => 1,
467             'head3' => 1,
468             'head4' => 1,
469             'hex' => 1,
470             'if' => 1,
471             'index' => 1,
472             'int' => 1,
473             'ioctl' => 1,
474             'is' => 1,
475             'is_deeply' => 1,
476             'isa' => 1,
477             'isa_ok' => 1,
478             'isnt' => 1,
479             'item' => 1,
480             'join' => 1,
481             'keys' => 1,
482             'kill' => 1,
483             'last' => 1,
484             'lc' => 1,
485             'lcfirst' => 1,
486             'le' => 1,
487             'length' => 1,
488             'like' => 1,
489             'link' => 1,
490             'listen' => 1,
491             'local' => 1,
492             'localtime' => 1,
493             'lock' => 1,
494             'log' => 1,
495             'longmess' => 1,
496             'lstat' => 1,
497             'lt' => 1,
498             'm' => 1,
499             'map' => 1,
500             'mkdir' => 1,
501             'mkdtemp' => 1,
502             'mkpath' => 1,
503             'mkstemp' => 1,
504             'mkstemps' => 1,
505             'mktemp' => 1,
506             'move' => 1,
507             'msgctl' => 1,
508             'msgget' => 1,
509             'msgrcv' => 1,
510             'msgsnd' => 1,
511             'mv' => 1,
512             'my' => 1,
513             'ne' => 1,
514             'next' => 1,
515             'no' => 1,
516             'no_upwards' => 1,
517             'not' => 1,
518             'oct' => 1,
519             'ok' => 1,
520             'open' => 1,
521             'opendir' => 1,
522             'or' => 1,
523             'ord' => 1,
524             'our' => 1,
525             'over' => 1,
526             'pack' => 1,
527             'package' => 1,
528             'pass' => 1,
529             'path' => 1,
530             'pipe' => 1,
531             'plan' => 1,
532             'pod' => 1,
533             'pop' => 1,
534             'pos' => 1,
535             'print' => 1,
536             'printf' => 1,
537             'prototype' => 1,
538             'push' => 1,
539             'q' => 1,
540             'qq' => 1,
541             'qr' => 1,
542             'quotemeta' => 1,
543             'qw' => 1,
544             'qx' => 1,
545             'rand' => 1,
546             'read' => 1,
547             'readdir' => 1,
548             'readline' => 1,
549             'readlink' => 1,
550             'readpipe' => 1,
551             'recv' => 1,
552             'redo' => 1,
553             'ref' => 1,
554             'rel2abs' => 1,
555             'rename' => 1,
556             'require' => 1,
557             'require_ok' => 1,
558             'reset' => 1,
559             'return' => 1,
560             'reverse' => 1,
561             'rewinddir' => 1,
562             'rindex' => 1,
563             'rmdir' => 1,
564             'rmscopy' => 1,
565             'rmtree' => 1,
566             'rootdir' => 1,
567             's' => 1,
568             'safe_level' => 1,
569             'say' => 1,
570             'scalar' => 1,
571             'seek' => 1,
572             'seekdir' => 1,
573             'select' => 1,
574             'semctl' => 1,
575             'semget' => 1,
576             'semop' => 1,
577             'send' => 1,
578             'setgrent' => 1,
579             'sethostent' => 1,
580             'setnetent' => 1,
581             'setpgrp' => 1,
582             'setpriority' => 1,
583             'setprotoent' => 1,
584             'setpwent' => 1,
585             'setservent' => 1,
586             'setsockopt' => 1,
587             'shift' => 1,
588             'shmctl' => 1,
589             'shmget' => 1,
590             'shmread' => 1,
591             'shmwrite' => 1,
592             'shortmess' => 1,
593             'shutdown' => 1,
594             'sin' => 1,
595             'skip' => 1,
596             'sleep' => 1,
597             'socket' => 1,
598             'socketpair' => 1,
599             'sort' => 1,
600             'splice' => 1,
601             'split' => 1,
602             'splitdir' => 1,
603             'splitpath' => 1,
604             'sprintf' => 1,
605             'sqrt' => 1,
606             'srand' => 1,
607             'stat' => 1,
608             'state' => 1,
609             'study' => 1,
610             'sub' => 1,
611             'substr' => 1,
612             'symlink' => 1,
613             'syntax' => 1,
614             'syscall' => 1,
615             'sysopen' => 1,
616             'sysread' => 1,
617             'sysseek' => 1,
618             'system' => 1,
619             'syswrite' => 1,
620             'tell' => 1,
621             'telldir' => 1,
622             'tempdir' => 1,
623             'tempfile' => 1,
624             'thaw' => 1,
625             'tie' => 1,
626             'tied' => 1,
627             'time' => 1,
628             'times' => 1,
629             'tmpdir' => 1,
630             'tmpfile' => 1,
631             'tmpnam' => 1,
632             'todo_skip' => 1,
633             'tr' => 1,
634             'truncate' => 1,
635             'uc' => 1,
636             'ucfirst' => 1,
637             'umask' => 1,
638             'undef' => 1,
639             'unless' => 1,
640             'unlike' => 1,
641             'unlink' => 1,
642             'unlink0' => 1,
643             'unpack' => 1,
644             'unshift' => 1,
645             'untie' => 1,
646             'until' => 1,
647             'updir' => 1,
648             'use' => 1,
649             'use_ok' => 1,
650             'utime' => 1,
651             'values' => 1,
652             'variables' => 1,
653             'vec' => 1,
654             'wait' => 1,
655             'waitpid' => 1,
656             'wantarray' => 1,
657             'warn' => 1,
658             'while' => 1,
659             'write' => 1,
660             'xor' => 1,
661             'y' => 1
662             );
663              
664             # @param string $word any word
665             # @return int 1 or 0
666             sub is_keyword($) {
667 6     6 0 10 my $word = shift;
668 6 100       30 exists $words{$word} ? 1 : 0;
669             }
670              
671             1;
672              
673             __END__