The default perl syntax highlighting does break on some things, but it does allow the regex delimiters (!/# etc) you mention (vim 6.1.422, $VIMRUNTIME/syntax/perl.vim 30 Dec 2002). qq!! does not highlight correctly, but qq##, qq() etc do.
I have emailed the maintainer a patch to handle the ! delimiter in q, qq, qw, qr expressions.