There are several ways to get vim autoindent your code (set autoindent, set smartindent, set cindent, etc). When I first tried to use autoindenting I also faced your problem with comment outdenting, and later on I found a method to get rid of this "feature". So try this (put this to your .vimrc and comment out any other type of autoindenting)
in reply to Can't get vim to stop outdenting Perl comments, any ideas?
Probably this also helps you to get your desired indent level:
filetype indent on
autocmd FileType perl set softtabstop=3
autocmd FileType perl set shiftwidth=3
autocmd FileType perl set tabstop=3
autocmd FileType perl set expandtab