TL;DR
mkdir -p ~/.vim/ftdetect
cat <<EOF > ~/.vim/ftdetect/ruby.vim
au BufRead,BufNewFile Gemfile set filetype=ruby
au BufRead,BufNewFile Rakefile set filetype=ruby
au BufRead,BufNewFile *.ru set filetype=ruby
EOF
cat <<EOF > ~/.vim/ftdetect/perl.vim
au BufRead,BufNewFile cpanfile set filetype=perl
EOF
こんな感じで行けます。
Perl だと cpanfile
ぐらいかなと思いますが、Ruby だと DSL ファイルなど、自動認識してくれないものが色々あるかもしれませんね。
modeline 1 を記すという手もありますが、書きたくないという場合は、上のように所定のパスに設定を配置しておくと、filetype を適用してくれます 2 。
GitHub に置いている自分の dotfiles にも反映していますので、ご参考まで。