Sorry for the impudent answer, I use Emacs instead of vim. It uses an etags file which is different to ctags, but I guess the information contained in it is the same, just formatted differently. Here's how I generate the file:
perl-etags.pl - it supports some Moo* and similar sugar (e.g. "has", "alias", "method", but support for "handles" is still missing). Feel free to modify it to your liking.
I run it in the root directory of any larger project I work with. To get documentation on CPAN modules, I use perldoc (integrated into Emacs, of course, so I can just press a key combination on a module name and get the documentation). I rarely need to read the source of the CPAN modules, but if I need it, I use perldoc -l or perldoc -m. It hasn't happened enough times to bother me to find out whether Emacs supports it (and implement it if not).
map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]