Perl Can';t调用方法";模型";在一个未定义的值上

Perl Can';t调用方法";模型";在一个未定义的值上,perl,catalyst,dbix-class,moosex-types,Perl,Catalyst,Dbix Class,Moosex Types,我已经开发catalyst应用程序很多年了。这是我第一次尝试打开视图时出错。调用视图(只有一个视图)时,出现以下错误: 无法在..处对未定义的值调用方法“model” 下面的代码片段在Root.pm中使用,。这就是在浏览器上产生错误的原因。同样,这不是我第一次使用catalyst方法调用模型 my$model=$c->model('mypackage') my$result=$model->get_my_results() 另一种选择是使用: 使用mypackage my$model='mypa

我已经开发catalyst应用程序很多年了。这是我第一次尝试打开视图时出错。调用视图(只有一个视图)时,出现以下错误:

无法在..处对未定义的值调用方法“model”

下面的代码片段在Root.pm中使用,。这就是在浏览器上产生错误的原因。同样,这不是我第一次使用catalyst方法调用模型

my$model=$c->model('mypackage')
my$result=$model->get_my_results()

另一种选择是使用:
使用mypackage
my$model='mypackage'
my$results=$model->get_my_results()

以前有人遇到过这种情况吗?如果是,你能告诉我你是怎么解决的吗

谢谢

已编辑
请注意,正如原始帖子中所指出的,这是一个PerlCatalyst应用程序。$c是一个Catalyst对象。在Root.pm文件中,收到$c,如下所示:

子myform:本地{

my($self,$c)=@;

my$model=$c->model('mypackage');

my$results=$model->get_my_results();





}

打字错误?你的第一行是指
$c->model

所以,我找到了我邪恶的道路。我无意中忘记在调用方法中传递$c。因此,myform()中的$c没有值。因此,它找不到称为“模型”的催化剂方法

子myform:本地{

my($self,$c)=@;

my$model=$c->model('mypackage');

my$results=$model->get_my_results();




}

sub someother\u方法:本地{

my($self,$c)=@;





my$myform\u info=$self->myform($c)
您使用的是什么模式?请同时粘贴整个代码,以便我们可以看到$c的来源。这并不能回答问题。要评论或要求作者澄清,请在其帖子下方留下评论-您可以随时对自己的帖子发表评论,一旦您有足够的内容,您就可以发表评论。是的,我没有理解你的批评。但我还是个新手,不能对别人的帖子发表评论。@Secator:不,我怀疑这就是答案,即使用问题的措辞。@KevinHinshaw,在任何问题或答案的末尾都有一个灰色的
添加评论
链接。如果已经有人对该问题/答案发表评论,则该链接为bel最后一条评论是什么。@MarcelGosselin:你需要50个声誉才能留下评论