Do you know Ack? It's a grep-like program. That uses perl regular expressions instead of the normal Posix ones. You can find it on the CPAN.
The following Ack call will check your perl code for problem with a space missing behind a controlstatement keyword.
ack --perl '(?\@<!\w)(if|while|elsif|return)('
If you use Vim you can also use the following piece of vimscript in your
highlight WHITE_ON_RED ctermfg=white ctermbg=red function! BadNonInvocations () 2match WHITE_ON_RED /\w\@<!(if\|elsif\|while\|return\|for)(/ endfunction call BadNonInvocations()