2

假设我有这个虚拟 Perl 包test.pm

package test;

use strict;
use warnings;

=head1 DESCRIPTION

=head2 env

Return the environment name.

=cut

sub env { return "environment name"; }

=head2 hst

Return the history file name.

=cut

sub hst { return "history file"; }

=head2 hst_dir

Return the directory containing the history file.

=cut

sub hst_dir { return "history directory"; }

1;

Test::Spelling然后,我使用...从命令行运行拼写检查

$ perl -MTest::More -MTest::Spelling \
> -e 'pod_file_spelling_ok("test.pm", "spell check"); done_testing;'

...,我的函数名称envhst被标记为拼写错误,但hst_dir被接受:

not ok 1 - spell check
#   Failed test 'spell check'
#   at -e line 1.
# Errors:
#     env
#     hst
1..1
# Looks like you failed 1 test of 1.

我知道我可以使用 列出自定义字典add_stopwords(),但在我看来,函数名称根本不应该进行拼写检查。

我错过了文档中的一些细则吗?

4

1 回答 1

4

你在拼写检查你的 POD,而不是你的代码。

Test::Spelling看到:

=head2 env
=head2 hst

它怎么知道那是函数名(它根本不知道函数名的概念)?

它确实将 hst_dir 视为 perlish 关键字,由于下划线,whixh 不是单词中的正常字符。但这是最好的,没有停止的话......

于 2012-09-26T10:27:44.770 回答