作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
寻求帮助找出一个难倒的错误。
我创建了一个 perl Catalyst 插件,旨在为 Catalyst 5.90115 的 redirect_and_detach ($c->redirect_and_detach) 提供一种直接替换方法。我的替换方法只调用 Catalyst 的 redirect_and_detach:
package MyApp::Catalyst::Plugin::Logger;
...
sub my_redirect_and_detach {
my ($c, $uri, $status) = @_;
$c->redirect_and_detach($uri, $status);
}
我意识到这没有任何值(value),我只是在测试让这个简单的案例首先起作用。
然后我替换这个工作调用...
$c->redirect_and_detach($someuri);
通过调用我的新插件方法...
$c->my_redirect_and_detach($someuri);
我得到以下(缩写/混淆)错误:
Parameter #2 (undef) to Catalyst::Plugin::RedirectAndDetach::redirect_and_detach was an 'undef', which is not one of the allowed types: scalar
at /usr/local/share/perl/5.26.1/Catalyst/Plugin/RedirectAndDetach.pm line 18.
Catalyst::Plugin::RedirectAndDetach::redirect_and_detach(undef, "/myuri", undef) called at /var/app/lib/MyApp/Catalyst/Plugin/Logger.pm line 95
MyApp::Catalyst::Plugin::Logger::my_redirect_and_detach(MyApp=HASH(0x5628f93e4e60), "/myuri") called at ...
我了解 Catalyst 方法规范要求定义参数 #2。但我不明白为什么堆栈跟踪显示第一个参数为 undef(认为那是 $c 的类/包)。我验证了 $c 作为第一个参数成功传递,并在 my_redirect_and_detatch() 内部工作以提取请求参数。
有人看到这个问题吗?
提前致谢。
最佳答案
结果是 Catalyst 的 redirect_and_attach(),而 $status 如果未提供则默认为 undef,不喜欢实际的 undef $status 参数。解决方案是避免传递未定义的 $status。
关于perl - 为什么我的 perl Catalyst redirect_and_detach 替换插件方法失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60961689/
寻求帮助找出一个难倒的错误。 我创建了一个 perl Catalyst 插件,旨在为 Catalyst 5.90115 的 redirect_and_detach ($c->redirect_and_
我是一名优秀的程序员,十分优秀!