原型不匹配错误(perl)
发布时间:2020-12-15 21:12:09 所属栏目:大数据 来源:网络整理
导读:导入我写入我的舞者应用程序的模块时,我得到这个奇怪的错误. Prototype mismatch: sub main::from_json: none vs ($@) at mymodule.pm line 6.Prototype mismatch: sub main::to_json: none vs ($@) at mymodule.pm line 6. 我猜这是因为在我的模块我正在导
导入我写入我的舞者应用程序的模块时,我得到这个奇怪的错误.
Prototype mismatch: sub main::from_json: none vs ($@) at mymodule.pm line 6. Prototype mismatch: sub main::to_json: none vs ($@) at mymodule.pm line 6. 我猜这是因为在我的模块我正在导入perl JSON模块. 一切似乎都表现不错,但我想知道这个错误/警告是什么?我似乎没有在网上找到任何东西. 解决方法
另外出现这种情况的是当你加载的其他模块定义了一个from_json / to_json.最近几次碰到的例子就是舞者.如果你有一个包
package Foo; use Dancer qw/:syntax/; use JSON; 1; 你会得到那个警告,因为(显然)Dancer带有:syntax import将一个from_json和to_json放入你的命名空间. 在这种情况下的一个快速解决方案是只是从JSON中明确导入: package Foo; use Dancer qw/:syntax/; use JSON qw//; 1; 然后在你的代码中,你将需要使用完整的包名来获取JSON的subs,如下所示: my $hash = JSON::from_json('{"bob":"sally"}'); 在这种情况下,您可以使用完整的软件包名称,这样就可以清楚你所获得的功能 – 有多个to_json / from_json的声明,所以我们来清楚一下我们的意思. 如果将以下内容放在Foo.pm中,并运行“perl Foo.pm”,使用和不使用qw //后使用JSON,您可以看到它的工作原理: package Foo; use Dancer qw/:syntax/; use JSON qw//; print Dumper( JSON::from_json('{"bob":"sally"}') ); use Data::Dumper; 1; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |