text/x-perl;application/x-perl
*.pl;*.pm;*.al;*.perl;*.t
#
\S
\-[rwxoRWXOezsfdlpSbctugkTBMAC](?=\s) |
\-> |
\+\+ | \-\- |
\*\* |
\! | \~ | \\ | \+ | \- |
[!=]\~ |
\* | / | % |
<< | >> |
< | > | [<>=!]= | <=> |
& | \| | \^ |
&& |
\.\.\.? |
\? | : |
= | \*\*= | \+= | \*= | &= | <<= | &&= | \-= | /= |
\|= | >>= | \|\|= | \.= | %= | \^= | \bx= |
=> |
\b(x|lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\b
\%{operator}
\$\^[ADEFHILMOPSTWX]? | # ($^A, ...)
\$[\\\"\[\]'&`+*.,;=%~?@$><\(|/!-] | # ($|, $', ...)
\$:[^:] | # avoid confusion with $::foo (equiv. to $main::foo)
\$(0|[1-9][0-9]*) | # numbered variables (regex matches)
@[+-] | # special array variables
%[!+-] | %\^H # special hash variables
([$@%]|\$\#)\$*[a-zA-Z_][a-zA-Z0-9_]*
[$@%]{
}
\%{plain-variable}
\%{special-variable}
[&+|!/@#\^\-=:;,.?*\\%`"']
(?<![a-zA-Z0-9@%{(])
(?=\$)
\$(?=[|)])
{}
{}
\[\]
\[\]
\(}
\(\)
<>
<>
(?<=
[}\]\)>]|
\%{pattern-delimiter}
)
{}
\[\]
\(\)
<>
''
\\\\|\\'
(?P<RD>\%{pattern-delimiter})
\%{RD@start}
{}
\[\]
\(\)
<>
(?P<RD>\%{pattern-delimiter})
\%{RD@start}
'
'
(?<=(?P<RD>.))
\%{RD@start}
(?P<RD>\%{pattern-delimiter})
\%{RD@start}
(?<=(?P<RD>.))
\%{RD@start}
\%{end-of-pattern}
\%{end-of-pattern}
(?P<RD>\%{pattern-delimiter})
\%{RD@start}
(?<=(?P<RD>.))
\%{RD@start}
\%{end-of-pattern}
\%{end-of-pattern}
''
\\\\|\\'
\%{pattern-before}q\b
\%{end-of-pattern}
""
\%{pattern-before}qq\b
\%{end-of-pattern}
{}
\[\]
\(\)
<>
(?P<RD>\%{pattern-delimiter})
\%{RD@start}
\%{pattern-before}qw\b
\%{end-of-pattern}
\%{pattern-before}qr\b
\%{end-of-pattern}[imosx]*
``
\%{pattern-before}qx\b
\%{end-of-pattern}
\%{pattern-before}m\b
\%{end-of-pattern}[cgimosx]*
\%{pattern-before}s\b
\%{end-of-pattern}[ecgimosx]*
\%{pattern-before}(tr|y)\b
\%{end-of-pattern}[cds]*
(^|[^$@%&])(split|while|if)\s+(/)
/[cgimosx]*
(^|(?<=[\(\{]))\s*(/)
/[cgimosx]*
([!=]\~)\s*(/)
/[cgimosx]*
[^\s'"=;)<>]
<<
(
\s*\'(?P<HDB>\%{here-doc-bound-char}*)\'| # 'EOF'
\\(?P<HDB>\%{here-doc-bound-char}+) # \EOF
)
^\%{HDB@start}$
<<
(
\s*\"(?P<HDB>\%{here-doc-bound-char}*)\"| # "EOF"
(?P<HDB>\%{here-doc-bound-char}+) # EOF
)
^\%{HDB@start}$
[a-zA-Z_][a-zA-Z0-9_]*
(sub)\s+\%{function}\b
STDIN
STDOUT
STDERR
BEGIN
END
CHECK
INIT
require
(use|no)\s
;
attributes
autodie
autouse
base
bigint
bignum
bigrat
blib
bytes
charnames
constant
diagnostics
encoding
feature
fields
fileset
if
integer
less
lib
locale
mro
open
ops
overload
overloading
parent
re
sigtrap
sort
strict
subs
threads
threads::shared
utf8
vars
vmish
warnings
warnings::register
break
continue
do
default
each
else
elsif
foreach
for
given
if
last
local
my
next
our
package
return
sub
state
unless
until
when
while
__FILE__
__LINE__
__PACKAGE__
abs
accept
alarm
atan2
bind
binmode
bless
caller
chdir
chmod
chomp
chop
chown
chr
chroot
closedir
close
connect
cos
crypt
dbmclose
dbmopen
defined
delete
die
dump
each
endgrent
endhostent
endnetent
endprotoent
endpwent
endservent
eof
eval
exec
exists
exit
exp
fcntl
fileno
flock
fork
format
formline
getc
getgrent
getgrgid
getgrnam
gethostbyaddr
gethostbyname
gethostent
getlogin
getnetbyaddr
getnetbyname
getnetent
getpeername
getpgrp
getppid
getpriority
getprotobyname
getprotobynumber
getprotoent
getpwent
getpwnam
getpwuid
getservbyname
getservbyport
getservent
getsockname
getsockopt
glob
gmtime
goto
grep
hex
import
index
int
ioctl
join
keys
kill
lcfirst
lc
length
link
listen
localtime
log
lstat
map
mkdir
msgctl
msgget
msgrcv
msgsnd
new
oct
opendir
open
ord
pack
pipe
pop
pos
printf
print
prototype
push
quotemeta
rand
readdir
read
readlink
recv
redo
ref
rename
reset
reverse
rewinddir
rindex
rmdir
say
scalar
seekdir
seek
select
semctl
semget
semop
send
setgrent
sethostent
setnetent
setpgrp
setpriority
setprotoent
setpwent
setservent
setsockopt
shift
shmctl
shmget
shmread
shmwrite
shutdown
sin
sleep
socket
socketpair
sort
splice
split
sprintf
sqrt
srand
stat
study
substr
symlink
syscall
sysread
sysseek
system
syswrite
telldir
tell
tied
tie
time
times
truncate
ucfirst
uc
umask
undef
unlink
unpack
unshift
untie
utime
values
vec
wait
waitpid
wantarray
warn
write
^\# \s*
(line \s+ (\d+)) \s*
(?:(\s"([^"]+)"|[^"]+))? \s*
$
[IBCLEFSXZ]<(?!<)(?<!>)>
[IBCLEFSXZ]<{2}\s\s>{2}
[IBCLEFSXZ]<{3}\s\s>{3}
[IBCLEFSXZ]<{4}\s\s>{4}
[IBCLEFSXZ]<{5}\s\s>{5}
[IBCLEFSXZ]<{6}\s\s>{6}
^=(head[1-4])
^(?=(=[a-z]))
^=(cut)$
^=(pod|encoding|over|item|back)
^=(begin)\s+(.*)$
^=(end)\s+\%{1@start}$
__(DATA|END)__