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

Save this as ftplugin/perl.vim below a directory in your Vim runtimepath (type :set runtimepath to find it). This will allow you to search through included modules, use tags easily, and use the define-searching capability ( [d etc) to find subroutine definitions.

I posted this snippet in a message some time earlier, then found that I had to use Super Search to find it. Anyway, I figured I'd put it here.

" Vim filetype plugin file " Language: Perl " Maintainer: Ned Konz <ned@bike-nomad.com> " Last change: $Date: 2001/06/20 20:23:37 $ " $Revision: 1.6 $ " Only do this when not done yet for this buffer if exists("b:did_ftplugin") finish endif " Set this once, globally. if !exists("perlpath") let perlpath = system('perl -e "print join(\",\",@INC)"') endif " Don't load another plugin for this buffer let b:did_ftplugin = 1 " Set 'formatoptions' to break comment lines but not other lines, " and insert the comment leader when hitting <CR> or using "o". setlocal fo-=t fo+=croql setlocal include=\\<\\(use\\\|require\\)\\> setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'$',' +.pm','') setlocal isfname=A-Z,a-z,:,48-57,_ setlocal keywordprg=perldoc setlocal iskeyword=48-57,_,A-Z,a-z,: setlocal isident=48-57,_,A-Z,a-z setlocal define=^\\s*sub setlocal comments=:# let &l:path=perlpath setlocal makeprg=perl\ -Mstrict\ -wc\ % setlocal errorformat+=%m\ at\ %f\ line\ %l. setlocal grepprg=rgrep\ -n\ -R\ '*.p[ml]'\ $* map <buffer> <C-]> :exec ":tag /".expand("<cword>")