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