vimrcで&filetypeがe使えない…。

F4キーでソースを実行するみたいなキーマップをしているのですが。
開くファイルによって、実行方法を変えたいと思いまして。
以下のように、vimrcに書いてみた。

if &ft == 'perl'
  map <F4>  :w<CR> !perl<CR>
elseif &ft == 'vim'
  map <F4>  :source %<CR>
elseif &ft == 'javascript'
  map <F4>  :w<CR> !node<CR>
endif

ところが、&ftの値が空?なようで、どの判定にも引っかからない。
しかたないので、以下のようにした。

au FileType perl map <F4>  :w<CR> !perl<CR>
au FileType vim map <F4>  :source %<CR>
au FileType javascript map <F4>  :w<CR> !node<CR>

ネットに落ちているvimrcを見てみたのだけれど、
&filetypeで判定されている方もいるから、やる方法はあるように思うのだけれど…。

ううむ。