http://qs1969.pair.com?node_id=363781

Patch for perl.vim to support ! as quote-like operator delimiters:

*** d:\source\vim\vim61\runtime\syntax\perl.vim Thu Mar 27 12:28:19 + 2003 --- c:\progra~1\vim\vim61\syntax\perl.vim Thu Mar 27 12:30:12 2003 *************** *** 292,312 **** --- 292,316 ---- syn region perlQQ matchgroup=perlStringStartEnd start=+\<q(+ +end=+)+ contains=@perlInterpSQ,perlBrackets syn region perlQQ matchgroup=perlStringStartEnd start=+\<q{+ +end=+}+ contains=@perlInterpSQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<q/+ +end=+/+ contains=@perlInterpSQ + syn region perlQQ matchgroup=perlStringStartEnd start=+\<q!+ +end=+!+ contains=@perlInterpSQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx +]#+ end=+#+ contains=@perlInterpDQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx +]|+ end=+|+ contains=@perlInterpDQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx +](+ end=+)+ contains=@perlInterpDQ,perlBrackets syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx +]{+ end=+}+ contains=@perlInterpDQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx +]/+ end=+/+ contains=@perlInterpDQ + syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx +]!+ end=+!+ contains=@perlInterpDQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw#+ + end=+#+ contains=@perlInterpSQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw|+ + end=+|+ contains=@perlInterpSQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw(+ + end=+)+ contains=@perlInterpSQ,perlBrackets syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw{+ + end=+}+ contains=@perlInterpSQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw/+ + end=+/+ contains=@perlInterpSQ + syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw!+ + end=+!+ contains=@perlInterpSQ syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr#+ + end=+#[imosx]*+ contains=@perlInterpMatch syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr|+ + end=+|[imosx]*+ contains=@perlInterpMatch syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr(+ + end=+)[imosx]*+ contains=@perlInterpMatch syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr{+ + end=+}[imosx]*+ contains=@perlInterpMatch syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr/+ + end=+/[imosx]*+ contains=@perlInterpSlash + syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr!+ + end=+![imosx]*+ contains=@perlInterpSlash " Constructs such as print <<EOF [...] EOF, 'here' documents "