加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

什么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一样),只是传递对象.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读