shell-command-to-stringっていう関数は、渡された文字列をコマンドとしてログインシェルに渡すっぽい。
なのでtcshをログインシェルにしていて、下記のようなものを評価すると
(shell-command-to-string
"perl -e 'print join(q{ }, grep( !/^\.$/, @INC));'"
)
"/: Event not found.
"
エラーがでます。これは「!」がtcshでは特別な意味を持ってるから。
ログインシェルをbashやzshに変えてやってみたら↑のは問題なく実行できました。