<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language _name="Perl" version="1.0" _section="Scripts" mimetypes="application/x-perl">
	
	<escape-char>\</escape-char>

	<string _name = "POD" style = "Comment" end-at-line-end = "FALSE">
		<start-regex>^=[a-z]</start-regex>
		<end-regex>^=cut</end-regex>
	</string>

	<string _name = "String" style = "String" end-at-line-end = "FALSE">
		<start-regex>&quot;</start-regex>
		<end-regex>&quot;</end-regex>
	</string>

	<string _name = "String2" style = "String" end-at-line-end = "FALSE">
		<start-regex>&apos;</start-regex>
		<end-regex>&apos;</end-regex>
	</string>

	<string _name = "String3" style = "String" end-at-line-end = "FALSE">
		<start-regex>`</start-regex>
		<end-regex>`</end-regex>
	</string>

	<line-comment _name = "Line Comment" style= "Comment">
		<start-regex>[^\$]#|^#</start-regex>
	</line-comment>

	<pattern-item _name = "Variables" style = "Data Type">
		<regex>[$@%][$]?[a-zA-Z_][a-zA-Z0-9_]*</regex>
	</pattern-item>

	<pattern-item _name = "Function Call" style = "Others">
		<regex>&amp;[a-zA-Z_][a-zA-Z0-9_]*</regex>
	</pattern-item>

	<pattern-item _name = "Method Call" style = "Others">
		<regex>-&gt;[a-zA-Z_][a-zA-Z0-9_]*</regex>
	</pattern-item>

	<keyword-list _name = "Operators" style = "Others" case-sensitive="TRUE">
		<keyword>gt</keyword>
		<keyword>ge</keyword>
		<keyword>lt</keyword>
		<keyword>le</keyword>
		<keyword>xor</keyword>
		<keyword>cmp</keyword>
 		<keyword>eq</keyword>
 		<keyword>ne</keyword>
 		<keyword>not</keyword>
 		<keyword>or</keyword>
		<keyword>and</keyword>
		<keyword>s</keyword>		
		<keyword>m</keyword>		
		<keyword>q</keyword>		
		<keyword>qq</keyword>	
		<keyword>qw</keyword>					
		<keyword>qr</keyword>		
		<keyword>qx</keyword>		
		<keyword>tr</keyword>		
	</keyword-list>

	<keyword-list _name = "Keywords" style = "Keyword" case-sensitive="TRUE">
		<keyword>read</keyword>
		<keyword>keys</keyword>
		<keyword>chomp</keyword>
		<keyword>if</keyword>
		<keyword>else</keyword>
		<keyword>elsif</keyword>
		<keyword>unless</keyword>
		<keyword>open</keyword>
		<keyword>close</keyword>
		<keyword>split</keyword>
		<keyword>for</keyword>
		<keyword>while</keyword>
		<keyword>foreach</keyword>
		<keyword>exit</keyword>
		<keyword>sub</keyword>
		<keyword>print</keyword>
		<keyword>use</keyword>
		<keyword>require</keyword>
		<keyword>continue</keyword>
		<keyword>until</keyword>
		<keyword>do</keyword>
		<keyword>last</keyword>
		<keyword>next</keyword>
		<keyword>redo</keyword>
		<keyword>goto</keyword>
		<keyword>chop</keyword>
		<keyword>chr</keyword>
		<keyword>crypt</keyword>
		<keyword>hex</keyword>
		<keyword>index</keyword>
		<keyword>lc</keyword>
		<keyword>lcfirst</keyword>
		<keyword>length</keyword>
		<keyword>oct</keyword>
		<keyword>ord</keyword>
		<keyword>reverse</keyword>
		<keyword>rindex</keyword>
		<keyword>printf</keyword>
		<keyword>sprintf</keyword>
		<keyword>substr</keyword>
		<keyword>uc</keyword>
		<keyword>ucfirst</keyword>
		<keyword>pos</keyword>
		<keyword>quotemeta</keyword>
		<keyword>study</keyword>
		<keyword>abs</keyword>
		<keyword>atan2</keyword>
		<keyword>cos</keyword>
		<keyword>exp</keyword>
		<keyword>int</keyword>
		<keyword>log</keyword>
		<keyword>rand</keyword>
		<keyword>sin</keyword>
		<keyword>sqrt</keyword>
		<keyword>srand</keyword>
		<keyword>pop</keyword>
		<keyword>push</keyword>
		<keyword>shift</keyword>
		<keyword>splice</keyword>
		<keyword>unshift</keyword>
		<keyword>grep</keyword>
		<keyword>join</keyword>
		<keyword>map</keyword>
		<keyword>sort</keyword>
		<keyword>unpack</keyword>
		<keyword>pack</keyword>
		<keyword>delete</keyword>
		<keyword>each</keyword>
		<keyword>exists</keyword>
		<keyword>values</keyword>
		<keyword>binmode</keyword>
		<keyword>closedir</keyword>
		<keyword>dbmclose</keyword>
		<keyword>dbmopen</keyword>
		<keyword>die</keyword>
		<keyword>eof</keyword>
		<keyword>fileno</keyword>
		<keyword>flock</keyword>
		<keyword>format</keyword>
		<keyword>getc</keyword>
		<keyword>readdir</keyword>
		<keyword>rewinddir</keyword>
		<keyword>seek</keyword>
		<keyword>seekdir</keyword>
		<keyword>select</keyword>
		<keyword>syscall</keyword>
		<keyword>sysread</keyword>
		<keyword>sysseek</keyword>
		<keyword>syswrite</keyword>
		<keyword>tell</keyword>
		<keyword>telldir</keyword>
		<keyword>truncate</keyword>
		<keyword>warn</keyword>
		<keyword>write</keyword>
		<keyword>vec</keyword>
		<keyword>chdir</keyword>
		<keyword>chmod</keyword>
		<keyword>chown</keyword>
		<keyword>chroot</keyword>
		<keyword>fcntl</keyword>
		<keyword>glob</keyword>
		<keyword>ioctl</keyword>
		<keyword>link</keyword>
		<keyword>lstat</keyword>
		<keyword>mkdir</keyword>
		<keyword>opendir</keyword>
		<keyword>readlink</keyword>
		<keyword>rename</keyword>
		<keyword>rmdir</keyword>
		<keyword>stat</keyword>
		<keyword>symlink</keyword>
		<keyword>umask</keyword>
		<keyword>unlink</keyword>
		<keyword>utime</keyword>
		<keyword>caller</keyword>
		<keyword>dump</keyword>
		<keyword>eval</keyword>
		<keyword>return</keyword>
		<keyword>wantarray</keyword>
		<keyword>import</keyword>
		<keyword>local</keyword>
		<keyword>my</keyword>
		<keyword>our</keyword>
		<keyword>package</keyword>
		<keyword>defined</keyword>
		<keyword>formline</keyword>
		<keyword>prototype</keyword>
		<keyword>reset</keyword>
		<keyword>scalar</keyword>
		<keyword>undef</keyword>
		<keyword>alarm</keyword>
		<keyword>exec</keyword>
		<keyword>fork</keyword>
		<keyword>getpgrp</keyword>
		<keyword>getppid</keyword>
		<keyword>getpriority</keyword>
		<keyword>kill</keyword>
		<keyword>pipe</keyword>
		<keyword>setpgrp</keyword>
		<keyword>setpriority</keyword>
		<keyword>sleep</keyword>
		<keyword>system</keyword>
		<keyword>times</keyword>
		<keyword>wait</keyword>
		<keyword>waitpid</keyword>
		<keyword>no</keyword>
		<keyword>bless</keyword>
		<keyword>ref</keyword>
		<keyword>tie</keyword>
		<keyword>tied</keyword>
		<keyword>untie</keyword>
		<keyword>accept</keyword>
		<keyword>bind</keyword>
		<keyword>connect</keyword>
		<keyword>getpeername</keyword>
		<keyword>getsockname</keyword>
		<keyword>getsockopt</keyword>
		<keyword>listen</keyword>
		<keyword>recv</keyword>
		<keyword>send</keyword>
		<keyword>setsockopt</keyword>
		<keyword>shutdown</keyword>
		<keyword>socket</keyword>
		<keyword>socketpair</keyword>
		<keyword>msgctl</keyword>
		<keyword>msgget</keyword>
		<keyword>msgrcv</keyword>
		<keyword>msgsnd</keyword>
		<keyword>semctl</keyword>
		<keyword>semget</keyword>
		<keyword>semop</keyword>
		<keyword>shmctl</keyword>
		<keyword>shmget</keyword>
		<keyword>shmread</keyword>
		<keyword>shmwrite</keyword>
		<keyword>endgrent</keyword>
		<keyword>endhostent</keyword>
		<keyword>endnetent</keyword>
		<keyword>endpwent</keyword>
		<keyword>getgrent</keyword>
		<keyword>getgrgid</keyword>
		<keyword>getgrnam</keyword>
		<keyword>getlogin</keyword>
		<keyword>getpwent</keyword>
		<keyword>getpwnam</keyword>
		<keyword>getpwuid</keyword>
		<keyword>setgrent</keyword>
		<keyword>setpwent</keyword>
		<keyword>endprotoent</keyword>
		<keyword>endservent</keyword>
		<keyword>gethostbyaddr</keyword>
		<keyword>gethostbyname</keyword>
		<keyword>gethostent</keyword>
		<keyword>getnetbyaddr</keyword>
		<keyword>getnetbyname</keyword>
		<keyword>getnetent</keyword>
		<keyword>getprotobyname</keyword>
		<keyword>getprotobynumber</keyword>
		<keyword>getprotoent</keyword>
		<keyword>getservbyname</keyword>
		<keyword>getservbyport</keyword>
		<keyword>getservent</keyword>
		<keyword>sethostent</keyword>
		<keyword>setnetent</keyword>
		<keyword>setprotoent</keyword>
		<keyword>setservent</keyword>
		<keyword>gmtime</keyword>
		<keyword>localtime</keyword>
		<keyword>time</keyword>
	</keyword-list>

</language>
