Emacs获取Perl文件中的函数列表

Emacs获取Perl文件中的函数列表,emacs,Emacs,我想自动生成一个HTML文档,其中包含Perl文件的文档。为了构建它,我需要一个包含在文件中的函数列表。每个函数的格式为“^sub name”。是否有任何函数可以获取所有函数名?或者如何编写?您可以使用elisp搜索功能: (defun find-perl-sub () (let ((subs)) (with-current-buffer "my-perl-file.pl" (goto-char (point-min)) (while (re-search-f

我想自动生成一个HTML文档,其中包含Perl文件的文档。为了构建它,我需要一个包含在文件中的函数列表。每个函数的格式为“^sub name”。是否有任何函数可以获取所有函数名?或者如何编写?

您可以使用elisp搜索功能:

(defun find-perl-sub ()
  (let ((subs))
    (with-current-buffer "my-perl-file.pl"
      (goto-char (point-min))
      (while (re-search-forward "^[[:blank:]]*sub[[:blank:]]+\\([a-zA-Z0-9_]+\\)" nil t)
        (push (match-string-no-properties 1) subs)))
    subs
    ))

您可以使用elisp搜索功能:

(defun find-perl-sub ()
  (let ((subs))
    (with-current-buffer "my-perl-file.pl"
      (goto-char (point-min))
      (while (re-search-forward "^[[:blank:]]*sub[[:blank:]]+\\([a-zA-Z0-9_]+\\)" nil t)
        (push (match-string-no-properties 1) subs)))
    subs
    ))

请注意,提取所有函数名及其在缓冲区中的位置已经由imenu完成。
所以你可能更喜欢用这个。只需调用imenu make index List,然后在imenu index List中查看结果。

注意,提取所有函数名及其在缓冲区中的位置已经由imenu完成。
所以你可能更喜欢用这个。只需调用imenu make index List,然后在imenu index List中查看结果。

我认为,最好将sub[:blank:]*替换为sub[:blank:]+,因为我们在sub关键字后至少需要1个空格。我认为,最好将sub[:blank:]*替换为sub[:blank:]+,因为我们在sub关键字后至少需要1个空格