@@ -1,181 +1,100 @@
6−(single_var_declaration)
2+ "use" "no" "require" "package"
7−(scalar_variable)
3+] @keyword.control.import
15−(package_name)
6+ "sub"
16−(special_scalar_variable)
7+] @keyword.function
17−(special_array_variable)
18−(special_hash_variable)
33−(pod_statement) @comment.block.documentation
36−(use_no_statement)
10+ "if" "elsif" "else" "unless"
37−(use_no_feature_statement)
40−(use_constant_statement)
41−(use_parent_statement)
42−] @keyword
11+] @keyword.control.conditional
44−(use_constant_statement
45− constant: (identifier) @constant)
48−"require"
14+ "while" "until"
49−] @keyword
17+] @keyword.control.repeat
53− (identifier) @variable)
58− (identifier) @function)
60− function_name: (identifier) @function)
61−(named_block_statement
62− function_name: (identifier) @function)
65− function_name: (identifier) @function)
67− name: (identifier) @function)
76−"return"
20+ "my" "our" "local"
77−"sub"
21+] @keyword.storage.modifier
84−"("
24+ "last" "next" "redo" "goto" "return"
85−")"
25+] @keyword.control.return
90−] @punctuation.bracket
91−(standard_input_to_variable) @punctuation.bracket
95−"or"
29+] @constant.builtin
104−(hash_arrow_operator)
109−(hash_access_variable)
111−(ternary_expression_in_hash)
114−[
31+(phaser_statement phase: _ @keyword.directive)
116−(regex_option_for_substitution)
117−(regex_option_for_transliteration)
118−] @variable.parameter
121− (identifier) @variable)
128−(word_list_qw)
34+ "or" "and"
129−(command_qx_quoted)
35+ "eq" "ne" "cmp" "lt" "le" "ge" "gt"
130−(string_single_quoted)
36+ "isa"
131−(string_double_quoted)
37+] @keyword.operator
134−(transliteration_tr_or_y)
137−[
39+(comment) @comment
140−(substitution_pattern_s)
143−(escape_sequence) @string.special
41+(eof_marker) @keyword.directive
42+(data_section) @comment
145−[
44+(pod) @comment.block.documentation
151−] @punctuation.delimiter
156−(scientific_notation)
158−] @constant.numeric
46+(number) @constant.numeric
160−[
49+(string_literal) @string
161−; (if_statement)
50+(interpolated_string_literal) @string
162−(unless_statement)
51+(quoted_word_list) @string
163−(if_simple_statement)
52+(command_string) @string
164−(unless_simple_statement)
53+[(heredoc_token) (command_heredoc_token)] @string.special
165−] @keyword.control.conditional
54+(heredoc_content) @string
55+(heredoc_end) @string.special
56+[(escape_sequence) (escaped_delimiter)] @constant.character.escape
167−[
58+[(quoted_regexp) (match_regexp)] @string.regexp
169−"elsif"
60+(autoquoted_bareword _?) @string.special
171−] @keyword.control.conditional
62+[(scalar) (arraylen)] @variable
63+(scalar_deref_expression ["->" "$" "*"] @variable)
65+(array_deref_expression ["->" "@" "*"] @variable)
67+(hash_deref_expression ["->" "%" "*"] @variable)
69+(array_element_expression [array:(_) "->" "[" "]"] @variable)
70+(slice_expression [array:(_) "->" "[" "]"] @variable)
71+(keyval_expression [array:(_) "->" "[" "]"] @variable)
73+(hash_element_expression [hash:(_) "->" "{" "}"] @variable)
74+(slice_expression [hash:(_) "->" "[" "]"] @variable)
75+(keyval_expression [hash:(_) "->" "[" "]"] @variable)
77+(hash_element_expression key: (bareword) @string.special)
79+(use_statement (package) @type)
80+(package_statement (package) @type)
81+(require_expression (bareword) @type)
83+(subroutine_declaration_statement name: (_) @function)
84+(attrlist (attribute) @attribute)
86+(goto_expression (label) @label)
87+(loopex_expression (label) @label)
89+(statement_label label: _ @label)
173−(foreach_statement) @keyword.control.repeat
91+(relational_expression operator: "isa" right: (bareword) @type)
178−(function_attribute) @label
93+(function_call_expression (function) @function)
94+(method_call_expression (method) @function.method)
95+(method_call_expression invocant: (bareword) @type)
180−(function_signature) @type
97+(func0op_call_expression function: _ @function.builtin)
98+(func1op_call_expression function: _ @function.builtin)