Perl 为什么会出现错误';Can';t调用方法";“已提交”;没有包或对象引用';在Catalyst中生成表单时?

Perl 为什么会出现错误';Can';t调用方法";“已提交”;没有包或对象引用';在Catalyst中生成表单时?,perl,catalyst,formbuilder,Perl,Catalyst,Formbuilder,我使用以下代码生成一个带有Catalyst的简单表单: sub edit : Local { my ($self, $c) = @_; my $form = $self->formbuilder; if ($form->submitted && $form->validate) { $c->stash->{message} = 'Thanks for submitting the form!'; } }

我使用以下代码生成一个带有Catalyst的简单表单:

sub edit : Local {
    my ($self, $c) = @_;
    my $form = $self->formbuilder;
    if ($form->submitted && $form->validate) {
        $c->stash->{message} = 'Thanks for submitting the form!';
    }
}
但是,当我运行它时,会收到以下错误消息:

在/Users/me/Docs/workspace/MyAddressBook/AddressBook/script/./lib/AddressBook/Controller/Person.pm第58行,在没有包或对象引用的情况下,在AddressBook::Controller::Person->edit“无法调用方法”submitted中捕获异常

关于导致这种情况的原因有什么想法吗?

根据,属性
:Form
是触发表单创建的一部分,例如:

sub edit : Local Form {
    my ( $self, $c, @args ) = @_;
    ...

我想说,如果没有它,它不会被配置,因此没有提交的
方法。

OMG请叫我白痴。愚蠢的错误。谢谢你给我指路。增加了形式和魅力。新鲜的眼睛,仅此而已:-)