什么Perl模块有助于验证子例程参数?

前端之家收集整理的这篇文章主要介绍了什么Perl模块有助于验证子例程参数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一个通用模块,以从验证子程序和方法参数中获取这些苦差.我已经扫描了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一样),只是传递对象.

猜你在找的Perl相关文章