if (! this.sh_languages) { this.sh_languages = {}; } sh_languages['perl'] = [ [ [ /\b(?:import)\b/g, 'sh_preproc', -1 ], [ /(s)(\{(?:\\\}|[^}])*\}\{(?:\\\}|[^}])*\})([ixsmogce]*)/g, ['sh_keyword', 'sh_regexp', 'sh_keyword'], -1 ], [ /(s)(\((?:\\\)|[^)])*\)\((?:\\\)|[^)])*\))([ixsmogce]*)/g, ['sh_keyword', 'sh_regexp', 'sh_keyword'], -1 ], [ /(s)(\[(?:\\\]|[^\]])*\]\[(?:\\\]|[^\]])*\])([ixsmogce]*)/g, ['sh_keyword', 'sh_regexp', 'sh_keyword'], -1 ], [ /(s)(<.*><.*>)([ixsmogce]*)/g, ['sh_keyword', 'sh_regexp', 'sh_keyword'], -1 ], [ /(q(?:q?))(\{(?:\\\}|[^}])*\})/g, ['sh_keyword', 'sh_string'], -1 ], [ /(q(?:q?))(\((?:\\\)|[^)])*\))/g, ['sh_keyword', 'sh_string'], -1 ], [ /(q(?:q?))(\[(?:\\\]|[^\]])*\])/g, ['sh_keyword', 'sh_string'], -1 ], [ /(q(?:q?))(<.*>)/g, ['sh_keyword', 'sh_string'], -1 ], [ /(q(?:q?))([^A-Za-z0-9 \t])(.*\2)/g, ['sh_keyword', 'sh_string', 'sh_string'], -1 ], [ /(s)([^A-Za-z0-9 \t])(.*\2.*\2)([ixsmogce]*(?=[ \t]*(?:\)|;)))/g, ['sh_keyword', 'sh_regexp', 'sh_regexp', 'sh_keyword'], -1 ], [ /(s)([^A-Za-z0-9 \t])(.*\2[ \t]*)([^A-Za-z0-9 \t])(.*\4)([ixsmogce]*(?=[ \t]*(?:\)|;)))/g, ['sh_keyword', 'sh_regexp', 'sh_regexp', 'sh_regexp', 'sh_regexp', 'sh_keyword'], -1 ], [ /#/g, 'sh_comment', 1 ], [ /\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g, 'sh_number', -1 ], [ /(?:m|qr)(?=\{)/g, 'sh_keyword', 2 ], [ /(?:m|qr)(?=#)/g, 'sh_keyword', 4 ], [ /(?:m|qr)(?=\|)/g, 'sh_keyword', 6 ], [ /(?:m|qr)(?=@)/g, 'sh_keyword', 8 ], [ /(?:m|qr)(?=<)/g, 'sh_keyword', 10 ], [ /(?:m|qr)(?=\[)/g, 'sh_keyword', 12 ], [ /(?:m|qr)(?=\\)/g, 'sh_keyword', 14 ], [ /(?:m|qr)(?=\/)/g, 'sh_keyword', 16 ], [ /"/g, 'sh_string', 18 ], [ /'/g, 'sh_string', 19 ], [ /|\|/g, 'sh_symbol', -1 ], [ /\{|\}/g, 'sh_cbracket', -1 ], [ /(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g, 'sh_function', -1 ] ], [ [ /$/g, null, -2 ] ], [ [ /\{/g, 'sh_regexp', 3 ] ], [ [ /[ \t]+#.*/g, 'sh_comment', -1 ], [ /\$(?:[A-Za-z0-9_]+|\{[A-Za-z0-9_]+\})/g, 'sh_variable', -1 ], [ /\\\{|\\\}|\}/g, 'sh_regexp', -3 ] ], [ [ /#/g, 'sh_regexp', 5 ] ], [ [ /[ \t]+#.*/g, 'sh_comment', -1 ], [ /\$(?:[A-Za-z0-9_]+|\{[A-Za-z0-9_]+\})/g, 'sh_variable', -1 ], [ /\\#|#/g, 'sh_regexp', -3 ] ], [ [ /\|/g, 'sh_regexp', 7 ] ], [ [ /[ \t]+#.*/g, 'sh_comment', -1 ], [ /\$(?:[A-Za-z0-9_]+|\{[A-Za-z0-9_]+\})/g, 'sh_variable', -1 ], [ /\\\||\|/g, 'sh_regexp', -3 ] ], [ [ /@/g, 'sh_regexp', 9 ] ], [ [ /[ \t]+#.*/g, 'sh_comment', -1 ], [ /\$(?:[A-Za-z0-9_]+|\{[A-Za-z0-9_]+\})/g, 'sh_variable', -1 ], [ /\\@|@/g, 'sh_regexp', -3 ] ], [ [ /|>/g, 'sh_regexp', -3 ] ], [ [ /\[/g, 'sh_regexp', 13 ] ], [ [ /[ \t]+#.*/g, 'sh_comment', -1 ], [ /\$(?:[A-Za-z0-9_]+|\{[A-Za-z0-9_]+\})/g, 'sh_variable', -1 ], [ /\\]|\]/g, 'sh_regexp', -3 ] ], [ [ /\\/g, 'sh_regexp', 15 ] ], [ [ /[ \t]+#.*/g, 'sh_comment', -1 ], [ /\$(?:[A-Za-z0-9_]+|\{[A-Za-z0-9_]+\})/g, 'sh_variable', -1 ], [ /\\\\|\\/g, 'sh_regexp', -3 ] ], [ [ /\//g, 'sh_regexp', 17 ] ], [ [ /[ \t]+#.*/g, 'sh_comment', -1 ], [ /\$(?:[A-Za-z0-9_]+|\{[A-Za-z0-9_]+\})/g, 'sh_variable', -1 ], [ /\\\/|\//g, 'sh_regexp', -3 ] ], [ [ /$/g, null, -2 ], [ /\\(?:\\|")/g, null, -1 ], [ /"/g, 'sh_string', -2 ] ], [ [ /$/g, null, -2 ], [ /\\(?:\\|')/g, null, -1 ], [ /'/g, 'sh_string', -2 ] ], [ [ /$/g, null, -2 ], [ />/g, 'sh_string', -2 ] ], [ [ /\=cut/g, 'sh_comment', -2 ] ] ];