見つかったエントリと基本的に同じエントリがあります ここに :
(defun perl-boilerplate ()
(if (not (file-exists-p (buffer-file-name (current-buffer))))
(cond
((string-match "\.pl$" buffer-file-name)
(insert
"#!/usr/local/bin/perl\nuse warnings;\nuse strict;\n"))
((string-match "\\([^/]*\\)\.pm$" buffer-file-name)
(insert
(concat "package " (match-string 1 buffer-file-name)
";\n\nuse warnings;\nuse strict;\n\n1;\n"))
(backward-char 4)))))
(add-hook 'cperl-mode-hook 'perl-boilerplate)
OS Xで22.3を使用していたときは、これはすべてうまくいきました。24.1にアップデートしたところです。新しい.plファイルを作成するたびに、定型句が2回挿入されます。私の.emacsファイルは変更されていないので、これが何を引き起こすのか疑問に思います。フックが2回適用されているのでしょうか。 (それが起こる可能性があるとは思わなかった。)
誰もが同じ現象に遭遇する、またはこれを修正する方法を教えてもらえますか?
また
これは私がモジュールを起動したときに起こることです。 2番目のインスタンスが最初のインスタンスが終了する前に、つまり最後の '1;'が追加される前に、どのように追加されるかに注意してください。ライン。
package Foo;
use warnings;
use strict;
# $Id$
package Foo;
use warnings;
use strict;
# $Id$
1;
1;
更新
22.3と24.1に同梱されているcperl-mode.elファイルの違いと思われますが、正確にはどこにあるかわかりません。 (diffは1,124行です。)しかし、古いファイルと新しいファイルを交換する(そしてコンパイルされた.elcファイルを削除する)と、動作は私の望むものに戻りました。
add-hook
ライン?