# Leo colorizer control file for perl mode.
# This file is in the public domain.

# Properties for perl mode.
properties = {
	"indentCloseBrackets": "}",
	"indentOpenBrackets": "{",
	"lineComment": "#",
	"lineUpClosingBracket": "true",
}

# Attributes dict for perl_main ruleset.
perl_main_attributes_dict = {
	"default": "null",
	"digit_re": "",
	"escape": "\\",
	"highlight_digits": "true",
	"ignore_case": "false",
	"no_word_sep": "",
}

# Attributes dict for perl_pod ruleset.
perl_pod_attributes_dict = {
	"default": "COMMENT2",
	"digit_re": "",
	"escape": "\\",
	"highlight_digits": "true",
	"ignore_case": "false",
	"no_word_sep": "",
}

# Attributes dict for perl_literal ruleset.
perl_literal_attributes_dict = {
	"default": "LITERAL1",
	"digit_re": "",
	"escape": "\\",
	"highlight_digits": "true",
	"ignore_case": "false",
	"no_word_sep": "",
}

# Attributes dict for perl_exec ruleset.
perl_exec_attributes_dict = {
	"default": "KEYWORD3",
	"digit_re": "",
	"escape": "\\",
	"highlight_digits": "true",
	"ignore_case": "false",
	"no_word_sep": "",
}

# Attributes dict for perl_variable ruleset.
perl_variable_attributes_dict = {
	"default": "KEYWORD2",
	"digit_re": "",
	"escape": "\\",
	"highlight_digits": "true",
	"ignore_case": "false",
	"no_word_sep": "",
}

# Attributes dict for perl_regexp ruleset.
perl_regexp_attributes_dict = {
	"default": "MARKUP",
	"digit_re": "",
	"escape": "\\",
	"highlight_digits": "true",
	"ignore_case": "false",
	"no_word_sep": "",
}

# Dictionary of attributes dictionaries for perl mode.
attributesDictDict = {
	"perl_exec": perl_exec_attributes_dict,
	"perl_literal": perl_literal_attributes_dict,
	"perl_main": perl_main_attributes_dict,
	"perl_pod": perl_pod_attributes_dict,
	"perl_regexp": perl_regexp_attributes_dict,
	"perl_variable": perl_variable_attributes_dict,
}

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

# Keywords dict for perl_pod ruleset.
perl_pod_keywords_dict = {}

# Keywords dict for perl_literal ruleset.
perl_literal_keywords_dict = {}

# Keywords dict for perl_exec ruleset.
perl_exec_keywords_dict = {}

# Keywords dict for perl_variable ruleset.
perl_variable_keywords_dict = {}

# Keywords dict for perl_regexp ruleset.
perl_regexp_keywords_dict = {}

# Dictionary of keywords dictionaries for perl mode.
keywordsDictDict = {
	"perl_exec": perl_exec_keywords_dict,
	"perl_literal": perl_literal_keywords_dict,
	"perl_main": perl_main_keywords_dict,
	"perl_pod": perl_pod_keywords_dict,
	"perl_regexp": perl_regexp_keywords_dict,
	"perl_variable": perl_variable_keywords_dict,
}

# Rules for perl_main ruleset.

def perl_rule0(colorer, s, i):
    return colorer.match_eol_span(s, i, kind="comment1", seq="#",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="", exclude_match=False)

def perl_rule1(colorer, s, i):
    return colorer.match_span(s, i, kind="label", begin="=head1", end="=cut",
        at_line_start=True, at_whitespace_end=False, at_word_start=False,
        delegate="perl::pod",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule2(colorer, s, i):
    return colorer.match_span(s, i, kind="label", begin="=head2", end="=cut",
        at_line_start=True, at_whitespace_end=False, at_word_start=False,
        delegate="perl::pod",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule3(colorer, s, i):
    return colorer.match_span(s, i, kind="label", begin="=head3", end="=cut",
        at_line_start=True, at_whitespace_end=False, at_word_start=False,
        delegate="perl::pod",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule4(colorer, s, i):
    return colorer.match_span(s, i, kind="label", begin="=head4", end="=cut",
        at_line_start=True, at_whitespace_end=False, at_word_start=False,
        delegate="perl::pod",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule5(colorer, s, i):
    return colorer.match_span(s, i, kind="label", begin="=item", end="=cut",
        at_line_start=True, at_whitespace_end=False, at_word_start=False,
        delegate="perl::pod",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule6(colorer, s, i):
    return colorer.match_span(s, i, kind="label", begin="=over", end="=cut",
        at_line_start=True, at_whitespace_end=False, at_word_start=False,
        delegate="perl::pod",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule7(colorer, s, i):
    return colorer.match_span(s, i, kind="label", begin="=back", end="=cut",
        at_line_start=True, at_whitespace_end=False, at_word_start=False,
        delegate="perl::pod",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule8(colorer, s, i):
    return colorer.match_span(s, i, kind="label", begin="=pod", end="=cut",
        at_line_start=True, at_whitespace_end=False, at_word_start=False,
        delegate="perl::pod",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule9(colorer, s, i):
    return colorer.match_span(s, i, kind="label", begin="=for", end="=cut",
        at_line_start=True, at_whitespace_end=False, at_word_start=False,
        delegate="perl::pod",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule10(colorer, s, i):
    return colorer.match_span(s, i, kind="label", begin="=begin", end="=cut",
        at_line_start=True, at_whitespace_end=False, at_word_start=False,
        delegate="perl::pod",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule11(colorer, s, i):
    return colorer.match_span(s, i, kind="label", begin="=end", end="=cut",
        at_line_start=True, at_whitespace_end=False, at_word_start=False,
        delegate="perl::pod",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule12(colorer, s, i):
    return colorer.match_seq(s, i, kind="keyword2", seq="$`",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule13(colorer, s, i):
    return colorer.match_seq(s, i, kind="keyword2", seq="$'",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule14(colorer, s, i):
    return colorer.match_seq(s, i, kind="keyword2", seq="$\"",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule15(colorer, s, i):
    return colorer.match_span(s, i, kind="keyword2", begin="${", end="}",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="perl::variable",exclude_match=False,
        no_escape=False, no_line_break=True, no_word_break=False)

def perl_rule16(colorer, s, i):
    return colorer.match_seq_regexp(s, i, kind="keyword2", regexp="\\$(?:#|\\w)+",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule17(colorer, s, i):
    return colorer.match_seq_regexp(s, i, kind="keyword2", regexp="@(?:#|\\w)+",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule18(colorer, s, i):
    return colorer.match_seq_regexp(s, i, kind="keyword2", regexp="%(?:#|\\w)+",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule19(colorer, s, i):
    return colorer.match_span(s, i, kind="keyword2", begin="@{", end="}",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="perl::variable",exclude_match=False,
        no_escape=False, no_line_break=True, no_word_break=False)

def perl_rule20(colorer, s, i):
    return colorer.match_span(s, i, kind="keyword2", begin="%{", end="}",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="perl::variable",exclude_match=False,
        no_escape=False, no_line_break=True, no_word_break=False)

def perl_rule21(colorer, s, i):
    return colorer.match_span(s, i, kind="literal1", begin="\"", end="\"",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule22(colorer, s, i):
    return colorer.match_span(s, i, kind="literal1", begin="'", end="'",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule23(colorer, s, i):
    return colorer.match_span(s, i, kind="keyword3", begin="`", end="`",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="perl::exec",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule24(colorer, s, i):
    return colorer.match_span_regexp(s, i, kind="literal2", begin="<<[:space:]*(['\"])([[:space:][:alnum:]_]*)\\1;?\\s*", end="$2",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="perl::literal",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule25(colorer, s, i):
    return colorer.match_span_regexp(s, i, kind="literal2", begin="<<([[:alpha:]_][[:alnum:]_]*);?\\s*", end="$1",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="perl::literal",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule26(colorer, s, i):
    return colorer.match_seq_regexp(s, i, kind="markup", regexp="/[^[:blank:]]*?[^\\\\]/",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule27(colorer, s, i):
    return colorer.match_seq_regexp(s, i, kind="markup", regexp="q(?:|[qrx])\\{(?:.*?[^\\\\])*?\\}",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule28(colorer, s, i):
    return colorer.match_seq_regexp(s, i, kind="markup", regexp="tr([[:punct:]])(?:.*?[^\\\\])*?\\1(?:.*?[^\\\\])*?\\1",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule29(colorer, s, i):
    return colorer.match_seq_regexp(s, i, kind="markup", regexp="y([[:punct:]])(?:.*?[^\\\\])*?\\1(?:.*?[^\\\\])*?\\1",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule30(colorer, s, i):
    return colorer.match_seq_regexp(s, i, kind="markup", regexp="m\\{(?:.*?[^\\\\])*?\\}[sgiexom]*",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule31(colorer, s, i):
    return colorer.match_seq_regexp(s, i, kind="markup", regexp="m([[:punct:]])(?:.*?[^\\\\])*?\\1[sgiexom]*",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule32(colorer, s, i):
    return 0 # too complicated
    return colorer.match_seq_regexp(s, i, kind="markup", regexp="s\\s*\\{(?:.*?[^\\\\])*?\\}\\s*\\{(?:.*?[^\\\\])*?\\}[sgiexom]*",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule33(colorer, s, i):
    return 0 # too complicated
    return colorer.match_seq_regexp(s, i, kind="markup", regexp="s([[:punct:]])(?:.*?[^\\\\])*?\\1(?:.*?[^\\\\])*?\\1[sgiexom]*",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule34(colorer, s, i):
    return colorer.match_seq_regexp(s, i, kind="markup", regexp="/[^[:blank:]]*?/",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule35(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="|",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule36(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="&",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule37(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="!",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule38(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq=">=",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule39(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="<=",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule40(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq=">",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule41(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="<",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule42(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="=",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule43(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="!",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule44(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="+",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule45(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="-",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule46(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="/",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule47(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="*",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule48(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="^",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule49(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="~",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule50(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="}",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule51(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="{",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule52(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="?",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule53(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq=":",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule54(colorer, s, i):
    return colorer.match_keywords(s, i)

# Rules dict for perl_main ruleset.
rulesDict1 = {
	"!": [perl_rule37,perl_rule43,],
	"\"": [perl_rule21,],
	"#": [perl_rule0,],
	"$": [perl_rule12,perl_rule13,perl_rule14,perl_rule15,perl_rule16,],
	"%": [perl_rule18,perl_rule20,],
	"&": [perl_rule36,],
	"'": [perl_rule22,],
	"*": [perl_rule47,],
	"+": [perl_rule44,],
	"-": [perl_rule45,],
	"/": [perl_rule26,perl_rule34,perl_rule46,],
	"0": [perl_rule54,],
	"1": [perl_rule54,],
	"2": [perl_rule54,],
	"3": [perl_rule54,],
	"4": [perl_rule54,],
	"5": [perl_rule54,],
	"6": [perl_rule54,],
	"7": [perl_rule54,],
	"8": [perl_rule54,],
	"9": [perl_rule54,],
	":": [perl_rule53,],
	"<": [perl_rule24,perl_rule25,perl_rule39,perl_rule41,],
	"=": [perl_rule1,perl_rule2,perl_rule3,perl_rule4,perl_rule5,perl_rule6,perl_rule7,perl_rule8,perl_rule9,perl_rule10,perl_rule11,perl_rule42,],
	">": [perl_rule38,perl_rule40,],
	"?": [perl_rule52,],
	"@": [perl_rule17,perl_rule19,perl_rule54,],
	"A": [perl_rule54,],
	"B": [perl_rule54,],
	"C": [perl_rule54,],
	"D": [perl_rule54,],
	"E": [perl_rule54,],
	"F": [perl_rule54,],
	"G": [perl_rule54,],
	"H": [perl_rule54,],
	"I": [perl_rule54,],
	"J": [perl_rule54,],
	"K": [perl_rule54,],
	"L": [perl_rule54,],
	"M": [perl_rule54,],
	"N": [perl_rule54,],
	"O": [perl_rule54,],
	"P": [perl_rule54,],
	"Q": [perl_rule54,],
	"R": [perl_rule54,],
	"S": [perl_rule54,],
	"T": [perl_rule54,],
	"U": [perl_rule54,],
	"V": [perl_rule54,],
	"W": [perl_rule54,],
	"X": [perl_rule54,],
	"Y": [perl_rule54,],
	"Z": [perl_rule54,],
	"^": [perl_rule48,],
	"`": [perl_rule23,],
	"a": [perl_rule54,],
	"b": [perl_rule54,],
	"c": [perl_rule54,],
	"d": [perl_rule54,],
	"e": [perl_rule54,],
	"f": [perl_rule54,],
	"g": [perl_rule54,],
	"h": [perl_rule54,],
	"i": [perl_rule54,],
	"j": [perl_rule54,],
	"k": [perl_rule54,],
	"l": [perl_rule54,],
	"m": [perl_rule30,perl_rule31,perl_rule54,],
	"n": [perl_rule54,],
	"o": [perl_rule54,],
	"p": [perl_rule54,],
	"q": [perl_rule27,perl_rule54,],
	"r": [perl_rule54,],
	"s": [perl_rule32,perl_rule33,perl_rule54,],
	"t": [perl_rule28,perl_rule54,],
	"u": [perl_rule54,],
	"v": [perl_rule54,],
	"w": [perl_rule54,],
	"x": [perl_rule54,],
	"y": [perl_rule29,perl_rule54,],
	"z": [perl_rule54,],
	"{": [perl_rule51,],
	"|": [perl_rule35,],
	"}": [perl_rule50,],
	"~": [perl_rule49,],
}

# Rules for perl_pod ruleset.

# Rules dict for perl_pod ruleset.
rulesDict2 = {}

# Rules for perl_literal ruleset.

def perl_rule55(colorer, s, i):
    return colorer.match_span(s, i, kind="keyword2", begin="${", end="}",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="perl::variable",exclude_match=False,
        no_escape=False, no_line_break=True, no_word_break=False)

def perl_rule56(colorer, s, i):
    return colorer.match_span(s, i, kind="keyword2", begin="@{", end="}",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="perl::variable",exclude_match=False,
        no_escape=False, no_line_break=True, no_word_break=False)

def perl_rule57(colorer, s, i):
    return colorer.match_span(s, i, kind="keyword2", begin="%{", end="}",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="perl::variable",exclude_match=False,
        no_escape=False, no_line_break=True, no_word_break=False)

def perl_rule58(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="|",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule59(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="&",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule60(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="!",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule61(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq=">",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule62(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="<",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule63(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq=")",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule64(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="(",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule65(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="=",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule66(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="!",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule67(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="+",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule68(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="-",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule69(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="/",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule70(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="*",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule71(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="^",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule72(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="~",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule73(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="}",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule74(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="{",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule75(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq=".",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule76(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq=",",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule77(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq=";",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule78(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="]",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule79(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="[",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule80(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq="?",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule81(colorer, s, i):
    return colorer.match_seq(s, i, kind="literal1", seq=":",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

# Rules dict for perl_literal ruleset.
rulesDict3 = {
	"!": [perl_rule60,perl_rule66,],
	"$": [perl_rule55,],
	"%": [perl_rule57,],
	"&": [perl_rule59,],
	"(": [perl_rule64,],
	")": [perl_rule63,],
	"*": [perl_rule70,],
	"+": [perl_rule67,],
	",": [perl_rule76,],
	"-": [perl_rule68,],
	".": [perl_rule75,],
	"/": [perl_rule69,],
	":": [perl_rule81,],
	";": [perl_rule77,],
	"<": [perl_rule62,],
	"=": [perl_rule65,],
	">": [perl_rule61,],
	"?": [perl_rule80,],
	"@": [perl_rule56,],
	"[": [perl_rule79,],
	"]": [perl_rule78,],
	"^": [perl_rule71,],
	"{": [perl_rule74,],
	"|": [perl_rule58,],
	"}": [perl_rule73,],
	"~": [perl_rule72,],
}

# Rules for perl_exec ruleset.

def perl_rule82(colorer, s, i):
    return colorer.match_eol_span(s, i, kind="comment1", seq="#",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="", exclude_match=False)

def perl_rule83(colorer, s, i):
    return colorer.match_span(s, i, kind="keyword2", begin="${", end="}",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="",exclude_match=False,
        no_escape=False, no_line_break=True, no_word_break=False)

def perl_rule84(colorer, s, i):
    return colorer.match_span(s, i, kind="keyword2", begin="@{", end="}",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="",exclude_match=False,
        no_escape=False, no_line_break=True, no_word_break=False)

def perl_rule85(colorer, s, i):
    return colorer.match_span(s, i, kind="keyword2", begin="%{", end="}",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="",exclude_match=False,
        no_escape=False, no_line_break=True, no_word_break=False)

# Rules dict for perl_exec ruleset.
rulesDict4 = {
	"#": [perl_rule82,],
	"$": [perl_rule83,],
	"%": [perl_rule85,],
	"@": [perl_rule84,],
}

# Rules for perl_variable ruleset.

def perl_rule86(colorer, s, i):
    return colorer.match_span(s, i, kind="keyword2", begin="{", end="}",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="perl::variable",exclude_match=False,
        no_escape=False, no_line_break=True, no_word_break=False)

def perl_rule87(colorer, s, i):
    return colorer.match_seq(s, i, kind="operator", seq="->",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

# Rules dict for perl_variable ruleset.
rulesDict5 = {
	"-": [perl_rule87,],
	"{": [perl_rule86,],
}

# Rules for perl_regexp ruleset.

def perl_rule88(colorer, s, i):
    return colorer.match_seq(s, i, kind="markup", seq=")(",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule89(colorer, s, i):
    return colorer.match_seq(s, i, kind="markup", seq=")[",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule90(colorer, s, i):
    return colorer.match_seq(s, i, kind="markup", seq="){",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule91(colorer, s, i):
    return colorer.match_seq(s, i, kind="markup", seq="](",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule92(colorer, s, i):
    return colorer.match_seq(s, i, kind="markup", seq="][",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule93(colorer, s, i):
    return colorer.match_seq(s, i, kind="markup", seq="]{",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule94(colorer, s, i):
    return colorer.match_seq(s, i, kind="markup", seq="}(",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule95(colorer, s, i):
    return colorer.match_seq(s, i, kind="markup", seq="}[",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule96(colorer, s, i):
    return colorer.match_seq(s, i, kind="markup", seq="}{",
        at_line_start=False, at_whitespace_end=False, at_word_start=False, delegate="")

def perl_rule97(colorer, s, i):
    return colorer.match_span(s, i, kind="markup", begin="(", end=")",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="perl::regexp",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule98(colorer, s, i):
    return colorer.match_span(s, i, kind="markup", begin="[", end="]",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="perl::regexp",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

def perl_rule99(colorer, s, i):
    return colorer.match_span(s, i, kind="markup", begin="{", end="}",
        at_line_start=False, at_whitespace_end=False, at_word_start=False,
        delegate="perl::regexp",exclude_match=False,
        no_escape=False, no_line_break=False, no_word_break=False)

# Rules dict for perl_regexp ruleset.
rulesDict6 = {
	"(": [perl_rule97,],
	")": [perl_rule88,perl_rule89,perl_rule90,],
	"[": [perl_rule98,],
	"]": [perl_rule91,perl_rule92,perl_rule93,],
	"{": [perl_rule99,],
	"}": [perl_rule94,perl_rule95,perl_rule96,],
}

# x.rulesDictDict for perl mode.
rulesDictDict = {
	"perl_exec": rulesDict4,
	"perl_literal": rulesDict3,
	"perl_main": rulesDict1,
	"perl_pod": rulesDict2,
	"perl_regexp": rulesDict6,
	"perl_variable": rulesDict5,
}

# Import dict for perl mode.
importDict = {}

