dwww Home | Manual pages | Find package

Test2:...Custom(3perl)  Perl Programmers Reference Guide Test2:...Custom(3perl)

NAME
       Test2::Compare::Custom - Custom field check for comparisons.

DESCRIPTION
       Sometimes you want to do something complicated or unusual when
       validating a field nested inside a deep data structure. You could pull
       it out of the structure and test it separately, or you can use this to
       embed the check. This provides a way for you to write custom checks for
       fields in deep comparisons.

SYNOPSIS
           my $cus = Test2::Compare::Custom->new(
               name => 'IsRef',
               operator => 'ref(...)',
               stringify_got => 1,
               code => sub {
                   my %args = @_;
                   return $args{got} ? 1 : 0;
               },
           );

           # Pass
           is(
               { a => 1, ref => {},   b => 2 },
               { a => 1, ref => $cus, b => 2 },
               "This will pass"
           );

           # Fail
           is(
               {a => 1, ref => 'notref', b => 2},
               {a => 1, ref => $cus,     b => 2},
               "This will fail"
           );

ARGUMENTS
       Your custom sub will be passed 4 arguments in a hash:

           code => sub {
               my %args = @_;
               # provides got, exists, operator, name
               return ref($args{got}) ? 1 : 0;
           },

       $_ is also localized to "got" to make it easier for those who need to
       use regexes.

       got
       $_  The value to be checked.

       exists
           This will be a boolean. This will be true if "got" exists at all. If
           "exists"  is  false  then  it  means  "got" is not simply undef, but
           doesn't exist at all (think checking the value of a  hash  key  that
           does not exist).

       operator
           The operator specified at construction.

       name
           The name provided at construction.

METHODS
       $code = $cus->code
           Returns the coderef provided at construction.

       $name = $cus->name
           Returns the name provided at construction.

       $op = $cus->operator
           Returns the operator provided at construction.

       $stringify = $cus->stringify_got
           Returns the stringify_got flag provided at construction.

       $bool = $cus->verify(got => $got, exists => $bool)

SOURCE
       The   source   code   repository   for   Test2-Suite  can  be  found  at
       https://github.com/Test-More/Test2-Suite/.

MAINTAINERS
       Chad Granum <exodist@cpan.org>

AUTHORS
       Chad Granum <exodist@cpan.org>
       Daniel Böhmer <dboehmer@cpan.org>

COPYRIGHT
       Copyright 2018 Chad Granum <exodist@cpan.org>.

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

       See http://dev.perl.org/licenses/

perl v5.40.1                       2026-08-30            Test2:...Custom(3perl)

Generated by dwww version 1.16 on Sat Oct 3 06:47:46 CEST 2026.