emacs-lispで、major-modeを使った条件分岐で悩み中

major-modeってどうやって取得するんだろう。

(if (eq major-mode 'perl-mode)
    (動作1)
    (動作2)
)

みたいなコードを書いたときに、必ず動作2に入っちゃう。
string-matchで、emacsに表示されるmode-nameと
マッチさせる条件を書いても、それまた無理。
そもそもeqを使うのが違うのか?
悩みすぎてもな、ということで、とりあえず保留。