Hack #8. Don't Save Bad Perl
Don't even write out your file if the Perl isn't valid!
Perl tests tend to start by checking that your code compiles. Even if the tests don't check, you'll know it pretty quickly as all your code collapses in a string of compiler errors. Then you have to fire up your editor again and track down the problem. It's simple, though, to tell Vim that if your Perl code won't compile, it shouldn't even write it to disk.
Even better, you can load Perl's error messages back into Vim to jump right to the problem spots.
The Hack
Vim supports filetype plug-ins that alter its behavior based on the type of file being edited. Enable these by adding a line to your .vimrc:
filetype plugin on
Now you can put files in ~/.vim/ftplugin (My Documents\\_vimfiles\\ftplugin on Windows) and Vim will load them when it needs them. Perl plug-ins start with perl_, so save the following file as perl_synwrite.vim:
" perl_synwrite.vim: check syntax of Perl before writing " latest version at: http://www.vim.org/scripts/script.php?script_id=896 "" abort if b:did_perl_synwrite is true: already loaded or user pref if exists("b:did_perl_synwrite") finish endif let b:did_perl_synwrite = 1 "" set buffer :au pref: if defined globally, inherit; otherwise, false if (exists("perl_synwrite_au") && !exists("b:perl_synwrite_au")) let b:perl_synwrite_au = perl_synwrite_au elseif !exists("b:perl_synwrite_au") let b:perl_synwrite_au = 0 endif "" set buffer quickfix pref: if defined globally, inherit; otherwise, ...