dp.sh.Brushes.Perl = function()
{
	var funcs	=	'chomp chop chr crypt index lc lcfirst length ord pack reverse rindex sprintf substr uc ucfirst pos quotemeta split study abs atan2 cos exp hex int log oct rand sin sqrt srand splice unshift shift push pop split join reverse grep map sort unpack carp confess croak dbmclose dbmopen die syscall binmode close closedir eof fileno getc lstat print printf readdir readline readpipe rewinddir select stat tell telldir write fcntl flock ioctl open opendir read seek seekdir sysopen sysread sysseek syswrite truncate pack vec chdir chmod chown chroot glob link mkdir readlink rename rmdir symlink umask unlink utime alarm exec fork getpgrp getppid getpriority kill pipe setpgrp setpriority sleep system times wait waitpid accept bind connect getpeername getsockname getsockopt listen recv send setsockopt shutdown socket socketpair msgctl msgget msgrcv msgsnd semctl semget semop shmctl shmget shmread shmwrite endhostent endnetent endprotoent endservent gethostbyaddr gethostbyname gethostent getnetbyaddr getnetbyname getnetent getprotobyname getprotobynumber getprotoent getservbyname getservbyport getservent sethostent setnetent setprotoent setservent getpwuid getpwnam getpwent setpwent endpwent getgrent getgrgid getlogin getgrnam setgrent endgrent gmtime localtime time times';

	var keywords =	'TODO TBD FIXME XXX BEGIN END CHECK INIT END my local our and or xor goto return last next redo package each exists keys values tie tied untie caller die dump eval exit wantarray require import use no integer strict lib sigtrap subs vars warnings utf8 byte base fields warn formline reset scalar delete prototype lock new defined undef and or not bless ref while for foreach do until continue until continue do foreach for while switch eq ne gt lt ge le cmp not and or xor err else if elsif unless';


	this.regexList = [

		{ regex: dp.sh.RegexLib.SingleLinePerlComments,        css: 'comment' },        // one line comments

		{ regex: dp.sh.RegexLib.DoubleQuotedString,					css: 'string' },			// double quoted strings

		{ regex: dp.sh.RegexLib.SingleQuotedString,					css: 'string' },			// single quoted strings

		{ regex: new RegExp('\\$\\w+', 'g'),						css: 'vars' },				// variables

		{ regex: new RegExp(this.GetKeywords(funcs), 'gmi'),		css: 'func' },				// functions
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),		css: 'keyword' }		// keyword

		];

	this.CssClass = 'dp-c';
}

dp.sh.Brushes.Perl.prototype	= new dp.sh.Highlighter();
dp.sh.Brushes.Perl.Aliases	= ['perl'];
