<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd"> <language name="Perl" version="1.02" kateversion="2.0" section="Scripts" extensions="*.pl;*.pm" mimetype="application/x-perl;text/x-perl"> <highlighting> � � <list name="keywords"> � � � � <item> if </item> � � � � <item> unless </item> � � � � <item> else </item> � � � � <item> elsif </item> � � � � <item> while </item> � � � � <item> until </item> � � � � <item> for </item> � � � � <item> each </item> � � � � <item> foreach </item> � � � � <item> next </item> � � � � <item> last </item> � � � � <item> break </item> � � � � <item> continue </item> � � � � <item> return </item> � � � � <item> use </item> � � � � <item> no </item> � � � � <item> require </item> � � � � <item> my </item> � � � � <item> our </item> � � � � <item> local </item> � � � � <item> BEGIN </item> � � � � <item> END </item> � � � � <item>require</item> � � � � <item> package </item> � � � � <item> sub </item> � � � � <item> do </item> � � � � <item> __END__ </item> � � � � <item> __DATA__ </item> � � � � <item> __FILE__ </item> � � � � <item> __LINE__ </item> � � � � <item> __PACKAGE__ </item> � � </list> � � <list name="operators"> � � � � <item> = </item> � � � � <item> != </item> � � � � <item> ~= </item> � � � � <item> += </item> � � � � <item> -= </item> � � � � <item> *= </item> � � � � <item> /= </item> � � � � <item> **= </item> � � � � <item> |= </item> � � � � <item> ||= </item> � � � � <item> &= </item> � � � � <item> &&= </item> � � � � <item> ?= </item> � � � � <item> + </item> � � � � <item> - </item> � � � � <item> * </item> � � � � <item> / </item> � � � � <item> % </item> � � � � <item> || </item> � � � � <item> && </item> � � � � <item> | </item> � � � � <item> & </item> � � � � <item> < </item> � � � � <item> << </item> � � � � <item> > </item> � � � � <item> >> </item> � � � � <item> ^ </item> � � � � <item> -> </item> � � � � <item> => </item> � � � � <item> . </item> � � � � <item> , </item> � � � � <item> ; </item> � � � � <item> :: </item> � � � � <item> \ </item> � � � � <item> and </item> � � � � <item> or </item> � � � � <item> not </item> � � � � <item> eq </item> � � � � <item> ne </item> � � </list> � � <list name="functions"> � � � � <item>abs</item> � � � � <item>accept</item> � � � � <item>alarm</item> � � � � <item>atan2</item> � � � � <item>bind</item> � � � � <item>binmode</item> � � � � <item>bless</item> � � � � <item>caller</item> � � � � <item>chdir</item> � � � � <item>chmod</item> � � � � <item>chomp</item> � � � � <item>chop</item> � � � � <item>chown</item> � � � � <item>chr</item> � � � � <item>chroot</item> � � � � <item>close</item> � � � � <item>closedir</item> � � � � <item>connect</item> � � � � <item>cos</item> � � � � <item>crypt</item> � � � � <item>dbmclose</item> � � � � <item>dbmopen</item> � � � � <item>defined</item> � � � � <item>delete</item> � � � � <item>die</item> � � � � <item>dump</item> � � � � <item>endgrent</item> � � � � <item>endhostent</item> � � � � <item>endnetent</item> � � � � <item>endprotoent</item> � � � � <item>endpwent</item> � � � � <item>endservent</item> � � � � <item>eof</item> � � � � <item>eval</item> � � � � <item>exec</item> � � � � <item>exists</item> � � � � <item>exit</item> � � � � <item>exp</item> � � � � <item>fcntl</item> � � � � <item>fileno</item> � � � � <item>flock</item> � � � � <item>fork</item> � � � � <item>format</item> � � � � <item>formline</item> � � � � <item>getc</item> � � � � <item>getgrent</item> � � � � <item>getgrgid</item> � � � � <item>getgrnam</item> � � � � <item>gethostbyaddr</item> � � � � <item>gethostbyname</item> � � � � <item>gethostent</item> � � � � <item>getlogin</item> � � � � <item>getnetbyaddr</item> � � � � <item>getnetbyname</item> � � � � <item>getnetent</item> � � � � <item>getpeername</item> � � � � <item>getpgrp</item> � � � � <item>getppid</item> � � � � <item>getpriority</item> � � � � <item>getprotobyname</item> � � � � <item>getprotobynumber</item> � � � � <item>getprotoent</item> � � � � <item>getpwent</item> � � � � <item>getpwnam</item> � � � � <item>getpwuid</item> � � � � <item>getservbyname</item> � � � � <item>getservbyport</item> � � � � <item>getservent</item> � � � � <item>getsockname</item> � � � � <item>getsockopt</item> � � � � <item>glob</item> � � � � <item>gmtime</item> � � � � <item>goto</item> � � � � <item>grep</item> � � � � <item>hex</item> � � � � <item>import</item> � � � � <item>index</item> � � � � <item>int</item> � � � � <item>ioctl</item> � � � � <item>join</item> � � � � <item>keys</item> � � � � <item>kill</item> � � � � <item>last</item> � � � � <item>lc</item> � � � � <item>lcfirst</item> � � � � <item>length</item> � � � � <item>link</item> � � � � <item>listen</item> � � � � <item>localtime</item> � � � � <item>lock</item> � � � � <item>log</item> � � � � <item>lstat</item> � � � � <item>map</item> � � � � <item>mkdir</item> � � � � <item>msgctl</item> � � � � <item>msgget</item> � � � � <item>msgrcv</item> � � � � <item>msgsnd</item> � � � � <item>oct</item> � � � � <item>open</item> � � � � <item>opendir</item> � � � � <item>ord</item> � � � � <item>pack</item> � � � � <item>package</item> � � � � <item>pipe</item> � � � � <item>pop</item> � � � � <item>pos</item> � � � � <item>print</item> � � � � <item>printf</item> � � � � <item>prototype</item> � � � � <item>push</item> � � � � <item>quotemeta</item> � � � � <item>rand</item> � � � � <item>read</item> � � � � <item>readdir</item> � � � � <item>readline</item> � � � � <item>readlink</item> � � � � <item>recv</item> � � � � <item>redo</item> � � � � <item>ref</item> � � � � <item>rename</item> � � � � <item>reset</item> � � � � <item>return</item> � � � � <item>reverse</item> � � � � <item>rewinddir</item> � � � � <item>rindex</item> � � � � <item>rmdir</item> � � � � <item>scalar</item> � � � � <item>seek</item> � � � � <item>seekdir</item> � � � � <item>select</item> � � � � <item>semctl</item> � � � � <item>semget</item> � � � � <item>semop</item> � � � � <item>send</item> � � � � <item>setgrent</item> � � � � <item>sethostent</item> � � � � <item>setnetent</item> � � � � <item>setpgrp</item> � � � � <item>setpriority</item> � � � � <item>setprotoent</item> � � � � <item>setpwent</item> � � � � <item>setservent</item> � � � � <item>setsockopt</item> � � � � <item>shift</item> � � � � <item>shmctl</item> � � � � <item>shmget</item> � � � � <item>shmread</item> � � � � <item>shmwrite</item> � � � � <item>shutdown</item> � � � � <item>sin</item> � � � � <item>sleep</item> � � � � <item>socket</item> � � � � <item>socketpair</item> � � � � <item>sort</item> � � � � <item>splice</item> � � � � <item>split</item> � � � � <item>sprintf</item> � � � � <item>sqrt</item> � � � � <item>srand</item> � � � � <item>stat</item> � � � � <item>study</item> � � � � <item>sub</item> � � � � <item>substr</item> � � � � <item>symlink</item> � � � � <item>syscall</item> � � � � <item>sysread</item> � � � � <item>sysseek</item> � � � � <item>system</item> � � � � <item>syswrite</item> � � � � <item>tell</item> � � � � <item>telldir</item> � � � � <item>tie</item> � � � � <item>time</item> � � � � <item>times</item> � � � � <item>truncate</item> � � � � <item>uc</item> � � � � <item>ucfirst</item> � � � � <item>umask</item> � � � � <item>undef</item> � � � � <item>unlink</item> � � � � <item>unpack</item> � � � � <item>unshift</item> � � � � <item>untie</item> � � � � <item>utime</item> � � � � <item>values</item> � � � � <item>vec</item> � � � � <item>wait</item> � � � � <item>waitpid</item> � � � � <item>wantarray</item> � � � � <item>warn</item> � � � � <item>write</item> � � </list> � � <list name="pragmas"> � � � � <item>strict</item> � � � � <item>english</item> � � � � <item>warnings</item> � � � � <item>vars</item> � � � � <item>subs</item> � � � � <item>utf8</item> � � � � <item>sigtrap</item> � � � � <item>locale</item> � � � � <item>open</item> � � � � <item>less</item> � � � � <item>integer</item> � � � � <item>filetest</item> � � � � <item>constant</item> � � � � <item>bytes</item> � � � � <item>diagnostics</item> � � </list> � � <contexts> � � � � <context attribute="Normal Text" name="default" lineEndContext="#stay" name="normal"> � � � � � � <RegExpr attribute="Keyword" context="#stay" String="^#!\/.*" /> � � � � � � <RegExpr attribute="Keyword" context="data_handle" String="^__DATA__" /> � � � � � � <RegExpr attribute="Keyword" context="end_handle" String="^__END__" /> � � � � � � <keyword attribute="Keyword" context="#stay" String="keywords" /> � � � � � � <keyword attribute="Operator" context="#stay" String="operators" /> � � � � � � <keyword attribute="Function" context="#stay" String="functions" /> � � � � � � <keyword attribute="Pragma" context="#stay" String="pragmas" /> � � � � � � <RegExpr attribute="Comment" context="comment" String="#" /> � � � � � � <RegExpr attribute="Pod" context="pod" String="^\=(?:head[1-6]|over|back|item|for|begin|end|pod)\s*.*" /> � � � � � � <RegExpr attribute="Keyword" context="sub_name_def" String="\s*sub\s+" /> � � � � � � <HlCOct attribute="Octal" context="slash_safe_escape" /> � � � � � � <HlCHex attribute="Hex" context="slash_safe_escape" /> � � � � � � <Float attribute="Float" context="slash_safe_escape" /> � � � � � � <Int attribute="Decimal" context="slash_safe_escape" /> � � � � � � <RegExpr attribute="Normal Text" context="#stay" String="\\["']" /> � � � � � � <Detect2Chars attribute="Normal Text" context="#stay" char="&" char1="'" /> � � � � � � <DetectChar attribute="String (interpolated)" context="ip_string" char="""/> � � � � � � <DetectChar attribute="String" context="string" char="'"/> � � � � � � <AnyChar attribute="Operator" context="#stay" String="&\" /> � � � � � � <RegExpr attribute="Special Variable" context="var_detect" String="\$[0-9]+" /> � � � � � � <RegExpr attribute="Special Variable" context="var_detect" String="[@\$](?:[\+\-_]\B|ARGV\b|INC\b)" /> � � � � � � <RegExpr attribute="Special Variable" context="var_detect" String="[%\$](?:INC\b|ENV\b|SIG\b)" /> � � � � � � <RegExpr attribute="Data Type" context="var_detect" String="\$\$[\$\w_]" /> � � � � � � <RegExpr attribute="Data Type" context="var_detect" String="\$[#_][\w_]" /> � � � � � � <RegExpr attribute="Special Variable" context="slash_safe_escape" String="\$[^a-zA-Z0-9\s{][A-Z]?" /> � � � � � � <RegExpr attribute="Data Type" context="var_detect" String="[\$@%]\{[\w_]+\}" /> � � � � � � <RegExpr attribute="Data Type" context="var_detect" String="[\$@%]" /> � � � � � � <RegExpr attribute="Data Type" context="var_detect" String="\*[a-zA-Z_]+" /> � � � � � � <RegExpr attribute="Keyword" context="#stay" String="<[A-Z0-9_]+>" /> � � � � � � <RegExpr attribute="Keyword" context="#stay" String="\s*<<\s*["']?[A-Z0-9_\-]+["']?" /> � � � � � � <RegExpr attribute="Normal Text" context="#stay" String="\s*[)}]\s*/" /> � � � � � � <RegExpr attribute="Normal Text" context="sub_name_def" String="\w+::" /> � � � � � � <RegExpr attribute="Normal Text" context="#stay" String="\w+[=]" /> � � � � � � <StringDetect attribute="String (interpolated)" context="ip_string_2" String="qq(" insensitive="FALSE" /> � � � � � � <StringDetect attribute="String (interpolated)" context="ip_string_3" String="qq{" insensitive="FALSE" /> � � � � � � <StringDetect attribute="String (interpolated)" context="ip_string_4" String="qq[" insensitive="FALSE" /> � � � � � � <StringDetect attribute="String (interpolated)" context="ip_string_5" String="qq<" insensitive="FALSE" /> � � � � � � <RegExpr attribute="String (interpolated)" context="#stay" String="qq([^a-zA-Z0-9_\s[\]{}()]).*\1" minimal="true" /> � � � � � � <Detect2Chars attribute="String" context="string_2" char="q" char1="(" /> � � � � � � <Detect2Chars attribute="String" context="string_3" char="q" char1="{" /> � � � � � � <Detect2Chars attribute="String" context="string_4" char="q" char1="[" /> � � � � � � <Detect2Chars attribute="String" context="string_5" char="q" char1="<" /> � � � � � � <RegExpr attribute="String" context="#stay" String="q([^a-zA-Z0-9_\s[\]{}()]).+\1" /> � � � � � � <StringDetect attribute="Normal Text" context="quote_word" String="qw/" /> � � � � � � <RegExpr attribute="Pattern" context="#stay" String="(?:s|tr|y)\([^)]*\)\s*\([^)]*\)" /> � � � � � � <RegExpr attribute="Pattern" context="#stay" String="(?:s|tr|y)\{[^}]*\}\s*\{[^}]*\}" /> � � � � � � <RegExpr attribute="Pattern" context="#stay" String="(?:s|tr|y)\[[^}]*\]\s*\[[^\]]*\]" /> � � � � � � <RegExpr attribute="Pattern" context="#stay" String="(?:s|tr|y)([^a-zA-Z0-9_\s[\]{}()]).*\1.*\1" minimal="true"/> � � � � � � <Detect2Chars attribute="Pattern" context="op_s_pattern" char="s" char1="{" /> � � � � � � <RegExpr attribute="Normal Text" context="#stay" String="[\w_]{3,}[[{:\-.;,]" /> � � � � � � <RegExpr attribute="Normal Text" context="#stay" String="[\w_]([mqsy]|q[rx])\(" /> � � � � � � <RegExpr attribute="Pattern" context="pattern_slash" String="(?:m|q[rx])\/" /> � � � � � � <RegExpr attribute="Pattern" context="#stay" String="(?:m|q[rx])\([^)]*\)" /> � � � � � � <RegExpr attribute="Pattern" context="#stay" String="(?:m|q[rx])\{[^}]*\}" /> � � � � � � <RegExpr attribute="Pattern" context="#stay" String="(?:m|q[rx])\[[^\]]*\]" /> � � � � � � <RegExpr attribute="Pattern" context="#stay" String="(?:m|q[rx])([^a-zA-Z0-9_-\s[\]{}()/]).+\1" minimal="true"/> � � � � � � <RegExpr attribute="Normal Text" context="#stay" String="[\w_]+\s*/" /> � � � � � � <RegExpr attribute="Normal Text" context="#stay" String="[<>"':]/" /> � � � � � � <DetectChar attribute="Pattern" context="pattern_slash" char="/" /> � � � � � � <RegExpr attribute="Operator" context="#stay" String="-[rwxoRWXOeszfdlpSbctugkTBMAC]" /> � � � � </context> � � � � <context attribute="Pod" lineEndContext="#stay" name="pod"> � � � � � � <LineContinue attribute="Pod" context="#stay" /> � � � � � � <RegExpr attribute="Pod" context="#stay" String="[^\=]*" /> � � � � � � <RegExpr attribute="Pod" context="#pop" String="^\=cut.*$" /> � � � � </context> <context attribute="String (interpolated)" lineContext="#stay" name="ipstring_internal"> � � � � � � <RegExpr attribute="String (interpolated)" context="#stay" String="\\[\$@%]" /> � � � � � � <RegExpr attribute="Special Variable" context="#stay" String="\$[0-9]+" /> � � � � � � <RegExpr attribute="Data Type" context="var_detect" String="\$+#?[a-zA-Z_]+[a-zA-Z0-9_]*" /> � � � � � � <RegExpr attribute="Data Type" context="var_detect" String="[@%][\$a-zA-Z_]+[a-zA-Z0-9_]*" /> � � � � � � <RegExpr attribute="String Special Character" context="#stay" String="\\[UuLlEtnaefr]" /> </context> <context attribute="Pattern" lineEndContext="#stay" name="regex_pattern_internal"> � � � � � � <RegExpr attribute="Comment" context="#stay" String="^\s*#.*$" /> � � � � � � <RegExpr attribute="Pattern Character Class" context="#stay" String="\\[anDdSsWw]" /> � � � � � � <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\\[ABbEGLlNUuQdQZz]" /> � � � � � � <RegExpr attribute="Special Variable" context="#stay" String="\\[\d]+" /> � � � � � � <RegExpr attribute="Pattern" context="#stay" String="\\." /> � � � � � � <RegExpr attribute="Data Type" context="#stay" String="[\$@]#?[a-zA-Z_]+[a-zA-Z0-9_]*" /> � � � � � � <Detect2Chars attribute="Pattern Internal Operator" context="pat_ext" char="(" char1="?" /> � � � � � � <DetectChar attribute="Pattern Internal Operator" context="pat_char_class" char="[" /> � � � � � � <RegExpr attribute="Pattern Internal Operator" context="#stay" String="[()?^*+|]" /> � � � � � � <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\{[\d, ]+\}" /> � � � � � � <DetectChar attribute="Pattern Internal Operator" context="#stay" char="$" /> � � � � � � <RegExpr attribute="Comment" context="#stay" String="\s{3,}#.*$" /> </context> � � � � <context attribute="String (interpolated)" lineEndContext="#stay" name="ip_string"> � � � � � � <LineContinue attribute="String (interpolated)" context="#stay"/> � � � � � � <Detect2Chars attribute="String" context="#stay" char="\" char1="\" /> � � � � � � <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1=""" /> � � � � � � <DetectChar attribute="String (interpolated)" context="#pop" char="""/> <IncludeRules context="2" /> � � � � </context> � � � � <context attribute="String" lineEndContext="#stay" name="string"> � � � � � � <LineContinue attribute="String" context="#stay"/> � � � � � � <Detect2Chars attribute="String" context="#stay" char="\" char1="\" /> � � � � � � <Detect2Chars attribute="String" context="#stay" char="\" char1="'" /> � � � � � � <DetectChar attribute="String" context="#pop" char="'" /> � � � � </context> � � � � <context attribute="String (interpolated)" lineEndContext="#stay" name="ip_string_2"> � � � � � � <LineContinue attribute="String (interpolated)" context="#stay" /> � � � � � � <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1="(" /> � � � � � � <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1=")" /> � � � � � � <RangeDetect attribute="String (interpolated)" context="#stay" char="(" char1=")" /> � � � � � � <DetectChar attribute="String (interpolated)" context="#pop" char=")" /> <IncludeRules context="2" /> � � � � </context> � � � � <context attribute="String (interpolated)" lineEndContext="#stay" name="ip_string_3"> � � � � � � <LineContinue attribute="String (interpolated)" context="#stay" /> � � � � � � <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1="{" /> � � � � � � <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1="}" /> � � � � � � <RangeDetect attribute="String (interpolated)" context="#stay" char="{" char1="}" /> � � � � � � <DetectChar attribute="String (interpolated)" context="#pop" char="}" /> <IncludeRules context="2" /> � � � � </context> � � � � <context attribute="String (interpolated)" lineEndContext="#stay" name="ip_string_4"> � � � � � � <LineContinue attribute="String (interpolated)" context="#stay" /> � � � � � � <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1="[" /> � � � � � � <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1="]" /> � � � � � � <RangeDetect attribute="String (interpolated)" context="#stay" char="[" char1="]" /> � � � � � � <DetectChar attribute="String (interpolated)" context="#pop" char="]" /> <IncludeRules context="2" /> � � � � </context> � � � � <context attribute="String (interpolated)" lineEndContext="#stay" name="ip_string_5"> � � � � � � <LineContinue attribute="String (interpolated)" context="#stay" /> � � � � � � <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1="<" /> � � � � � � <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1=">" /> � � � � � � <RangeDetect attribute="String (interpolated)" context="#stay" char="<" char1=">" /> � � � � � � <DetectChar attribute="String (interpolated)" context="#pop" char=">" /> <IncludeRules context="2" /> � � � � </context> � � � � <context attribute="String" lineEndContext="#stay" name="string_2"> � � � � � � <LineContinue attribute="String" context="#stay" /> � � � � � � <Detect2Chars attribute="String" context="#stay" char="\" char1="(" /> � � � � � � <Detect2Chars attribute="String" context="#stay" char="\" char1=")" /> � � � � � � <RangeDetect attribute="String" context="#stay" char="(" char1=")" /> � � � � � � <DetectChar attribute="String" context="#pop" char=")" /> � � � � </context> � � � � <context attribute="String" lineEndContext="#stay" name="string_3"> � � � � � � <Detect2Chars attribute="String" context="#stay" char="\" char1="{" /> � � � � � � <Detect2Chars attribute="String" context="#stay" char="\" char1="}" /> � � � � � � <RangeDetect attribute="String" context="#stay" char="{" char1="}" /> � � � � � � <LineContinue attribute="String" context="#stay" /> � � � � � � <DetectChar attribute="String" context="#pop" char="}" /> � � � � </context> � � � � <context attribute="String" lineEndContext="#stay" name="string_4"> � � � � � � <LineContinue attribute="String" context="#stay" /> � � � � � � <Detect2Chars attribute="String" context="#stay" char="\" char1="[" /> � � � � � � <Detect2Chars attribute="String" context="#stay" char="\" char1="]" /> � � � � � � <RangeDetect attribute="String" context="#stay" char="[" char1="]" /> � � � � � � <DetectChar attribute="String" context="#pop" char="]" /> � � � � </context> � � � � <context attribute="String" lineEndContext="#stay" name="string_5"> � � � � � � <LineContinue attribute="String" context="#stay" /> � � � � � � <Detect2Chars attribute="String" context="#stay" char="\" char1="<" /> � � � � � � <Detect2Chars attribute="String" context="#stay" char="\" char1=">" /> � � � � � � <RangeDetect attribute="String" context="#stay" char="<" char1=">" /> � � � � � � <DetectChar attribute="String" context="#pop" char=">" /> � � � � </context> � � � � <context attribute="Pattern" lineEndContext="#stay" name="op_s_pattern"> � � � � � � <LineContinue attribute="Pattern" context="#stay" /> � � � � � � <RegExpr attribute="Comment" context="#stay" String="\s+#.*$" /> � � � � � � <Detect2Chars attribute="Pattern" context="#stay" char="\" char1="{" /> � � � � � � <Detect2Chars attribute="Pattern" context="#stay" char="\" char1="}" /> <IncludeRules context="3" /> <DetectChar attribute="Pattern" context="op_s_replace" char="}" /> � � � � </context> � � � � <context attribute="Normal Text" lineEndContext="#stay" name="op_s_replace"> � � � � � � <LineContinue attribute="Normal Text" context="#stay" /> � � � � � � <RegExpr attribute="Normal Text" context="#stay" String="["'\/]" /> � � � � � � <RegExpr attribute="Comment" context="#stay" String="\s*#.*$" /> � � � � � � <RegExpr attribute="Special Variable" context="#stay" String="\$[0-9]+" /> � � � � � � <RegExpr attribute="Data Type" context="#stay" String="\$+#?[a-zA-Z_]+[a-zA-Z0-9_]*" /> � � � � � � <RegExpr attribute="Data Type" context="#stay" String="[@%][\$a-zA-Z_]+[a-zA-Z0-9_]*" /> � � � � � � <keyword attribute="Keyword" context="0" String="keywords" /> � � � � � � <keyword attribute="Operator" context="0" String="operators" /> � � � � � � <keyword attribute="Function" context="0" String="functions" /> � � � � � � <Detect2Chars attribute="Pattern" context="#stay" char="\" char1="{" /> � � � � � � <Detect2Chars attribute="Pattern" context="#stay" char="\" char1="}" /> � � � � � � <DetectChar attribute="Pattern" context="#stay" char="{" /> � � � � � � <DetectChar attribute="Pattern" context="#pop#pop" char="}" /> � � � � </context> � � � � <context attribute="Normal Text" lineEndContext="#stay" name="quote_word"> � � � � � � <LineContinue attribute="Normal Text" context="#stay" /> � � � � � � <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1="/" /> � � � � � � <DetectChar attribute="Normal Text" context="#pop" char="/" /> � � � � � � <RegExpr attribute="Data Type" context="#stay" String="\$+#?[a-zA-Z_]+[a-zA-Z0-9_]*" /> � � � � � � <RegExpr attribute="Data Type" context="#stay" String="[@%][\$a-zA-Z_]+[a-zA-Z0-9_]*" /> � � � � </context> � � � � <context attribute="Pattern" lineEndContext="#stay" name="pattern_slash"> � � � � � � <RegExpr attribute="Comment" context="#stay" String="^\s*#.*$" /> � � � � � � <LineContinue attribute="Pattern" context="#stay" /> <IncludeRules context="3" /> � � � � � � <DetectChar attribute="Pattern" context="#pop" char="/" /> � � � � </context> � � � � <context attribute="Data" lineEndContext="#stay" name="data_handle"> � � � � � � <LineContinue attribute="Data" context="#stay"/> � � � � � � <RegExpr attribute="Pod" context="pod" String="^\=(?:head[1-6]|over|back|item|for|begin|end|pod)\s*.*" /> � � � � � � <RegExpr attribute="Keyword" context="end_handle" String="^__END__" /> � � � � </context> � � � � <context attribute="Nothing" lineEndContext="#stay" name="end_handle"> � � � � � � <LineContinue attribute="Nothing" context="#stay" /> � � � � � � <RegExpr attribute="Pod" context="pod" String="^\=(?:head[1-6]|over|back|item|for|begin|end|pod)\s*.*" /> � � � � � � <RegExpr attribute="Keyword" context="data_handle" String="^__DATA__" /> � � � � </context> � � � � <context attribute="Normal Text" lineEndContext="#stay" name="var_detect" fallthrough="true" fallthroughContext="#pop"> � � � � � � <RegExpr attribute="Data Type" context="#stay" String="[\w_]+" /> � � � � � � <AnyChar attribute="Normal Text" context="#pop" String="[;,*=!&" /> � � � � � � <RegExpr attribute="Normal Text" context="#stay" String="\s*[})]?\s*/" /> � � � � � � <DetectChar attribute="Operator" context="#stay" char="'" /> � � � � � � <RegExpr attribute="Normal Text" context="in_hash_elem" String="\s*\{" /> � � � � � � <RegExpr attribute="Operator" context="#stay" String="(\+\+|--)" /> � � � � � � <Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" /> � � � � � � <RegExpr attribute="Normal Text" context="#stay" String="\s*\}?\s*->\s*" /> � � � � � � <RegExpr attribute="Normal Text" context="in_hash_elem" String="\s*\}\s*\{\s*" /> � � � � � � <RegExpr attribute="Data Type" context="#stay" String="[\$@%]" /> � � � � </context> � � � � <context attribute="Normal Text" lineEndContext="#pop" name="slash_safe_escape" fallthrough="true" fallthroughContext="#pop"> � � � � � � <RegExpr attribute="Normal Text" context="#pop" String="\s*[)}\]]?\s*/" /> � � � � � � <keyword attribute="Keyword" context="#pop" String="keywords" /> � � � � </context> � � � � <context attribute="Normal Text" lineEndContext="#pop" name="sub_name_def"> � � � � � � <RegExpr attribute="Normal Text" context="#stay" String="[\w_]+" /> � � � � � � <DetectChar attribute="Data Type" context="var_detect" char="$" /> � � � � � � <RegExpr attribute="Normal Text" context="sub_arg_definition" String="\s*\(" /> � � � � � � <AnyChar attribute="Normal Text" context="#pop" String=";{" /> � � � � </context> � � � � <context attribute="Normal Text" lineEndContext="#stay" name="package_qualified_blank"> � � � � � � <RegExpr attribute="Normal Text" context="#pop" String="[\w_]+" /> � � � � </context> � � � � <context attribute="Normal Text" lineEndContext="#pop" name="in_hash_elem"> � � � � � � <DetectChar attribute="String (interpolated)" context="ip_string" char=""" /> � � � � � � <DetectChar attribute="String" context="string" char="'" /> � � � � � � <RegExpr attribute="String" context="#stay" String="\s*[\w_]+\s*(?![\w_\(])" /> � � � � � � <RegExpr attribute="Special Variable" context="#stay" String="\$[0-9]+" /> � � � � � � <RegExpr attribute="Special Variable" context="#stay" String="[@\$](?:[\+\-_]\B|ARGV\b|INC\b)" /> � � � � � � <RegExpr attribute="Special Variable" context="#stay" String="[%\$](?:INC\b|ENV\b|SIG\b)" /> � � � � � � <RegExpr attribute="Data Type" context="var_detect" String="\$\$[\$\w_]" /> � � � � � � <RegExpr attribute="Data Type" context="var_detect" String="\$[#_][\w_]" /> � � � � � � <RegExpr attribute="Special Variable" context="#stay" String="\$[^a-zA-Z0-9\s{][A-Z]" /> � � � � � � <RegExpr attribute="Data Type" context="var_detect" String="[\$@%]" /> � � � � � � <RegExpr attribute="Normal Text" context="#pop" String="\s*[\w_]+\s*\(" /> � � � � � � <DetectChar attribute="Normal Text" context="#pop" char="}" /> � � � � </context> � � � � <context attribute="Normal Text" lineEndContext="#stay" name="sub_arg_definition" fallthrough="true" fallthroughContext="#pop#pop"> � � � � � � <RegExpr attribute="Data Type" context="#stay" String="[\$@%]" /> � � � � � � <DetectChar attribute="Normal Text" context="slash_safe_escape" char=")" /> � � � � </context> � � � � <context attribute="Pattern Internal Operator" lineEndContext="#stay" name="pat_ext"> � � � � � � <RegExpr attribute="Comment" context="#pop" String="\#[^)]*" /> � � � � � � <RegExpr attribute="Pattern Internal Operator" context="#pop" String="[:=!><]+" /> � � � � � � <DetectChar attribute="Pattern Internal Operator" context="#pop" char=")" /> � � � � </context> � � � � <context attribute="Pattern Character Class" lineEndContext="#stay" name="pat_char_class"> � � � � � � <LineContinue attribute="Pattern Character Class" context="#stay" /> � � � � � � <DetectChar attribute="Pattern Internal Operator" context="#stay" char="^" /> � � � � � � <Detect2Chars attribute="Pattern Character Class" context="#stay" char="\" char1="\" /> � � � � � � <Detect2Chars attribute="Pattern Character Class" context="#stay" char="\" char1="]" /> � � � � � � <RangeDetect attribute="Pattern Character Class" context="#stay" char="[" char1="]" /> � � � � � � <DetectChar attribute="Pattern Internal Operator" context="#pop" char="]" /> � � � � </context> <context attribute="Comment" name="comment" lineEndContext="#pop"> <RegExpr attribute="Note" context="#stay" String="(?:FIXME|TODO|NOTE):?" /> </context> � � </contexts> � � <itemDatas> � � � � <itemData name="Normal Text" �defStyleNum="dsNormal" /> � � � � <itemData name="Keyword" � � �defStyleNum="dsKeyword" /> � � � � <itemData name="Pragma" � � � defStyleNum="dsKeyword" /> � � � � <itemData name="Function" � � defStyleNum="dsNormal" color="#000080" selColor="#ffffff" bold="0" italic="0"/> � � � � <itemData name="Operator" � � defStyleNum="dsKeyword" /> � � � � <itemData name="Data Type" � �defStyleNum="dsDataType" /> � � � � <itemData name="Special Variable" defStyleNum="dsDataType" color="#C00000" selColor="#C00000" bold="0" italic="0" /> � � � � <itemData name="Decimal" � � �defStyleNum="dsDecVal" /> � � � � <itemData name="Octal" � � � �defStyleNum="dsBaseN" /> � � � � <itemData name="Hex" � � � � �defStyleNum="dsBaseN" /> � � � � <itemData name="Float" � � � �defStyleNum="dsFloat" /> � � � � <itemData name="String" � � � defStyleNum="dsString" color="#FF6C6C" selColor="#FF6C6C" bold="0" italic="0" /> � � � � <itemData name="String (interpolated)" defStyleNum="dsString" /> � � � � <itemData name="String Special Character" defStyleNum="dsChar" /> � � � � <itemData name="Pattern" � � �defStyleNum="dsOthers" /> � � � � <itemData name="Pattern Internal Operator" defStyleNum="dsChar" /> � � � � <itemData name="Pattern Character Class" defStyleNum="dsBaseN" /> � � � � <itemData name="Data" � � � � defStyleNum="dsNormal" /> � � � � <itemData name="Comment" � � �defStyleNum="dsComment" /> � � � � <itemData name="Pod" � � � � �defStyleNum="dsComment" /> � � � � <itemData name="Nothing" � � �defStyleNum="dsComment" /> � � � � <itemData name="Note" � � � defStyleNum="dsDecVal" color="#0000FF" selColor="#ffffff" bold="1" italic="0"/> � � </itemDatas> � </highlighting> � <general> � � <comments> � � � <comment name="singleLine" start="#" /> � � </comments> � � <keywords casesensitive="1" /> � </general> </language>