Data::Verifier::Results - Results of a Data::Verifier verify


version 0.63


    use Data::Verifier;

    my $dv = Data::Verifier->new(profile => {
        name => {
            required    => 1,
            type        => 'Str',
            filters     => [ qw(collapse trim) ]
        age  => {
            type        => 'Int'
        sign => {
            required    => 1,
            type        => 'Str'

    my $results = $dv->verify({
        name => 'Cory', age => 'foobar'

    $results->success; # no

    $results->is_invalid('name'); # no
    $results->is_invalid('age'); # yes

    $results->is_missing('name'); # no
    $results->is_missing('sign'); # yes


Data::Verifier uses MooseX::Storage::Deferred to allow quick and easy serialization. So a quick call to freeze will serialize this object into JSON and thaw will inflate it. The only caveat is that we don't serialize the value attribute. Since coercion allows you to make the result any type you want, it can't reliably be serialized. Use original value if you are serializing Result objects and using them to refill forms or something.

  my $json = $results->freeze({ format => 'JSON' });
  # ...
  my $results = Data::Verifier::Results->thaw($json, { format => 'JSON' });


This module has a hashref attribute fields. The keys are the names of the fields from the profile. The corresponding values are either undef or a Data::Verifier::Field object.

The only keys that will be populated in the Result object are those that were listed in the profile. Any arbitrary fields will not be part of the result object, as they were not part of the profile. You should not query the result object for the state of any arbitrary fields. This will not throw any exceptions, but it may not return the results you want if you query for arbitrary field names.



HashRef of fields in this Results object.


get_field ($name)

Gets the field object, if it exists, for the name provided.

has_field ($name)

Returns true if the name in question is part of this result object. This should be true for any field that was in the profile.

set_field ($name)

Sets the field object (you shouldn't be doing this directly) for the name provided.

get_original_value ($name)

Get the original value for the specified field.

get_post_filter_value ($name)

Get the post-filter value for the specified field.

get_value ($name)

Returns the value for the specified field. The value may be different from the one originally supplied due to filtering or coercion.

get_values (@names)

Same concept as get_value but will return a list of respective values in the same order in which you provide the names.

is_invalid ($name)

Returns true if the specific field is invalid.

is_missing ($name)

Returns true if the specified field is missing.

is_valid ($name)

Returns true if the field is valid.

is_wrong ($name)

Returns true if the value was required and is missing or if the value did not pass it's type constraint. This is a one-stop method for determining if the field in question is "wrong".

merge ($other_results_object)

Merge an existing Data::Verifier::Results object into this one.


Returns the count of invalid fields in this result.


Returns a list of invalid field names.


Returns the count of missing fields in this result.


Returns a list of missing field names.


Returns true or false based on if the verification's success.


Returns a list of keys for which we have valid values.


Returns the number of valid fields in this Results.


Returns a hash of valid values in the form of name = value>. This is a convenient method for instantiating Moose objects from your verified data.


Cory G Watson <>


This software is copyright (c) 2019 by Cold Hard Code, LLC.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.