什么Perl模块有助于验证子例程参数?
发布时间:2020-12-15 22:04:13 所属栏目:大数据 来源:网络整理
导读:我正在寻找一个通用模块,以从验证子程序和方法参数中获取这些苦差.我已经扫描了CPAN的各种可能性: Params::Validate , Params::Smart , Getargs::Mixed , Getargs::Long 和其他几个. 任何关于这些或其他模块的利弊的信息将不胜感激.谢谢. 解决方法 如果你开
我正在寻找一个通用模块,以从验证子程序和方法参数中获取这些苦差.我已经扫描了CPAN的各种可能性:
Params::Validate ,Params::Smart ,Getargs::Mixed ,Getargs::Long 和其他几个.
任何关于这些或其他模块的利弊的信息将不胜感激.谢谢. 解决方法
如果你开始使用
Moose ,你会发现你喜欢
MooseX::Types .类型自动有一个is_ $type()和to_ $type().这些是为了确保您输入传递类型约束,或使您的输入对该类型有有效的胁迫.我喜欢他们更好,即使是这些类型的东西,因为您可以确保您的对象的状态具有所述类型没有额外的成本.
use Moose; has 'foo' => ( isa => MyType,is => ro ); sub _check_my_type { my ( $self,$type ) = @_; is_MyType( $type ); }; 它可能缺乏对深度/递归类型的一些支持,但是如果你在现代perl中使用这些东西,你可能会“做错了”.而是使用一个具有自己的一致性检查的对象(像我上面的MyType一样),只是传递对象. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |