;(
function
()
{
typeof
(require) !=
'undefined'
? SyntaxHighlighter = require(
'shCore'
).SyntaxHighlighter :
null
;
function
Brush()
{
var
funcs =
'abs accept alarm atan2 bind binmode chdir chmod chomp chop chown chr '
+
'chroot close closedir connect cos crypt defined delete each endgrent '
+
'endhostent endnetent endprotoent endpwent endservent eof exec exists '
+
'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 grep hex index int ioctl join keys kill lc lcfirst length link '
+
'listen localtime lock log lstat map mkdir msgctl msgget msgrcv msgsnd '
+
'oct open opendir ord pack pipe pop pos print printf prototype push '
+
'quotemeta rand read readdir readline readlink readpipe recv rename '
+
'reset reverse rewinddir rindex rmdir scalar seek seekdir 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 sysopen sysread sysseek '
+
'system syswrite tell telldir time times tr truncate uc ucfirst umask '
+
'undef unlink unpack unshift utime values vec wait waitpid warn write'
;
var
keywords =
'bless caller continue dbmclose dbmopen die do dump else elsif eval exit '
+
'for foreach goto if import last local my next no our package redo ref '
+
'require return sub tie tied unless untie until use wantarray while'
;
this
.regexList = [
{ regex:
new
RegExp(
'#[^!].*$'
,
'gm'
), css:
'comments'
},
{ regex:
new
RegExp(
'^\\s*#!.*$'
,
'gm'
), css:
'preprocessor'
},
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString, css:
'string'
},
{ regex: SyntaxHighlighter.regexLib.singleQuotedString, css:
'string'
},
{ regex:
new
RegExp(
'(\\$|@|%)\\w+'
,
'g'
), css:
'variable'
},
{ regex:
new
RegExp(
this
.getKeywords(funcs),
'gmi'
), css:
'functions'
},
{ regex:
new
RegExp(
this
.getKeywords(keywords),
'gm'
), css:
'keyword'
}
];
this
.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags);
}
Brush.prototype =
new
SyntaxHighlighter.Highlighter();
Brush.aliases = [
'perl'
,
'Perl'
,
'pl'
];
SyntaxHighlighter.brushes.Perl = Brush;
typeof
(exports) !=
'undefined'
? exports.Brush = Brush :
null
;
})();