Runtime file updates.
diff --git a/runtime/syntax/perl.vim b/runtime/syntax/perl.vim
index 4c403ba..ca5e099 100644
--- a/runtime/syntax/perl.vim
+++ b/runtime/syntax/perl.vim
@@ -141,6 +141,7 @@
" Special variables first ($^A, ...) and ($|, $', ...)
syn match perlVarPlain "$^[ACDEFHILMNOPRSTVWX]\="
syn match perlVarPlain "$[\\\"\[\]'&`+*.,;=%~!?@#$<>(-]"
+syn match perlVarPlain "%+"
syn match perlVarPlain "$\%(0\|[1-9]\d*\)"
" Same as above, but avoids confusion in $::foo (equivalent to $main::foo)
syn match perlVarPlain "$::\@!"
@@ -216,7 +217,8 @@
syn match perlNotEmptyLine "^\s\+$" contained
" Highlight '} else if (...) {', it should be '} else { if (...) { ' or
" '} elsif (...) {'.
-syn match perlElseIfError "[^[:space:]{]\+" contained
+syn match perlElseIfError "\s\+if" contained
+syn keyword perlElseIfError elseif
" Variable interpolation
"