You can use Data::Constraint under the same terms as Perl itself.