name: Perl fileTypes:

firstLineMatch: ^#!.*bperlb scopeName: source.perl repository:

nested_ltgt: 
  captures: 
    "1": 
      name: punctuation.section.scope.perl
  begin: <
  end: ">"
  patterns: 
  - include: "#nested_ltgt"
escaped_char: 
  name: constant.character.escape.perl
  match: \\.
nested_brackets: 
  captures: 
    "1": 
      name: punctuation.section.scope.perl
  begin: \[
  end: \]
  patterns: 
  - include: "#escaped_char"
  - include: "#nested_brackets"
nested_braces: 
  captures: 
    "1": 
      name: punctuation.section.scope.perl
  begin: \{
  end: \}
  patterns: 
  - include: "#escaped_char"
  - include: "#nested_braces"
line_comment: 
  patterns: 
  - name: meta.comment.full-line.perl
    captures: 
      "1": 
        name: comment.line.number-sign.perl
      "2": 
        name: punctuation.definition.comment.perl
    match: ^((#).*$\n?)
  - name: comment.line.number-sign.perl
    captures: 
      "1": 
        name: punctuation.definition.comment.perl
    match: (#).*$\n?
nested_parens_interpolated: 
  captures: 
    "1": 
      name: punctuation.section.scope.perl
  begin: \(
  end: \)
  patterns: 
  - include: "#escaped_char"
  - include: "#variable"
  - include: "#nested_parens_interpolated"
nested_parens: 
  captures: 
    "1": 
      name: punctuation.section.scope.perl
  begin: \(
  end: \)
  patterns: 
  - include: "#escaped_char"
  - include: "#nested_parens"
nested_brackets_interpolated: 
  captures: 
    "1": 
      name: punctuation.section.scope.perl
  begin: \[
  end: \]
  patterns: 
  - include: "#escaped_char"
  - include: "#variable"
  - include: "#nested_brackets_interpolated"
nested_braces_interpolated: 
  captures: 
    "1": 
      name: punctuation.section.scope.perl
  begin: \{
  end: \}
  patterns: 
  - include: "#escaped_char"
  - include: "#variable"
  - include: "#nested_braces_interpolated"
nested_ltgt_interpolated: 
  captures: 
    "1": 
      name: punctuation.section.scope.perl
  begin: <
  end: ">"
  patterns: 
  - include: "#variable"
  - include: "#nested_ltgt_interpolated"
variable: 
  patterns: 
  - name: variable.other.regexp.match.perl
    captures: 
      "1": 
        name: punctuation.definition.variable.perl
    match: (\$)&(?![A-Za-z0-9_])
  - name: variable.other.regexp.pre-match.perl
    captures: 
      "1": 
        name: punctuation.definition.variable.perl
    match: (\$)`(?![A-Za-z0-9_])
  - name: variable.other.regexp.post-match.perl
    captures: 
      "1": 
        name: punctuation.definition.variable.perl
    match: (\$)'(?![A-Za-z0-9_])
  - name: variable.other.regexp.last-paren-match.perl
    captures: 
      "1": 
        name: punctuation.definition.variable.perl
    match: (\$)\+(?![A-Za-z0-9_])
  - name: variable.other.readwrite.list-separator.perl
    captures: 
      "1": 
        name: punctuation.definition.variable.perl
    match: (\$)"(?![A-Za-z0-9_])
  - name: variable.other.predefined.program-name.perl
    captures: 
      "1": 
        name: punctuation.definition.variable.perl
    match: (\$)0(?![A-Za-z0-9_])
  - name: variable.other.predefined.perl
    captures: 
      "1": 
        name: punctuation.definition.variable.perl
    match: (\$)[_ab\*\.\/\|,\\;#%=\-~^:?!\$<>\(\)\[\]@](?![A-Za-z0-9_])
  - name: variable.other.subpattern.perl
    captures: 
      "1": 
        name: punctuation.definition.variable.perl
    match: (\$)[0-9]+(?![A-Za-z0-9_])
  - name: variable.other.readwrite.global.perl
    captures: 
      "1": 
        name: punctuation.definition.variable.perl
    match: ([\$\@\%](#)?)([a-zA-Zx7f-xff\$]|::)([a-zA-Z0-9_x7f-xff\$]|::)*\b
  - name: variable.other.readwrite.global.perl
    captures: 
      "1": 
        name: punctuation.definition.variable.perl
      "2": 
        name: punctuation.definition.variable.perl
    match: (\$\{)(?:[a-zA-Zx7f-xff\$]|::)(?:[a-zA-Z0-9_x7f-xff\$]|::)*(\})
  - name: variable.other.readwrite.global.special.perl
    captures: 
      "1": 
        name: punctuation.definition.variable.perl
    match: ([\$\@\%](#)?)[0-9_]\b

uuid: EDBFE125-6B1C-11D9-9189-000D93589AF6 foldingStartMarker: (/*|({|[|()s*$) patterns:

foldingStopMarker: (*/|^s*(}|]|))) keyEquivalent: ^~P comment: | # TODO: Include RegExp syntax