Provided by: libdata-visitor-perl_0.32-1_all bug

NAME

       Data::Visitor::Callback - A Data::Visitor with callbacks.

VERSION

       version 0.32

SYNOPSIS

               use Data::Visitor::Callback;

               my $v = Data::Visitor::Callback->new(
                       # you can provide callbacks
                       # $_ will contain the visited value

                       value => sub { ... },
                       array => sub { ... },

                       # you can also delegate to method names
                       # this specific example will force traversal on objects, by using the
                       # 'visit_ref' callback which normally traverse unblessed references

                       object => "visit_ref",

                       # you can also use class names as callbacks
                       # the callback will be invoked on all objects which inherit that class

                       'Some::Class' => sub {
                               my ( $v, $obj ) = @_; # $v is the visitor

                               ...
                       },
               );

               $v->visit( $some_perl_value );

DESCRIPTION

       This is a Data::Visitor subclass that lets you invoke callbacks instead of needing to subclass yourself.

METHODS

       new %opts, %callbacks
           Construct a new visitor.

           The options supported are:

           ignore_return_values
               When  this  is  true  (off  by  default)  the  return values from the callbacks are ignored, thus
               disabling the fmapping behavior as documented in Data::Visitor.

               This is useful when you want to modify $_ directly

           tied_as_objects
               Whether or not to visit the "tied" in perlfunc of a tied  structure  instead  of  pretending  the
               structure is just a normal one.

               See "visit_tied" in Data::Visitor.

CALLBACKS

       Use these keys for the corresponding callbacks.

       The callback is in the form:

               sub {
                       my ( $visitor, $data ) = @_;

                       # or you can use $_, it's aliased

                       return $data; # or modified data
               }

       Within the callback $_ is aliased to the data, and this is also passed in the parameter list.

       Any method can also be used as a callback:

               object => "visit_ref", # visit objects anyway

       visit
           Called for all values

       value
           Called for non objects, non container (hash, array, glob or scalar ref) values.

       ref_value
           Called after "value", for references to regexes, globs and code.

       plain_value
           Called after "value" for non references.

       object
           Called for blessed objects.

           Since  "visit_object" in Data::Visitor will not recurse downwards unless you delegate to "visit_ref",
           you can specify "visit_ref" as the callback for "object" in order to enter objects.

           It is recommended that you specify the classes (or base classes) you want  though,  instead  of  just
           visiting any object forcefully.

       Some::Class
           You can use any class name as a callback. This is called only after the "object" callback.

           If the object "isa" the class then the callback will fire.

           These  callbacks  are  called  from  least derived to most derived by comparing the classes' "isa" at
           construction time.

       object_no_class
           Called for every object that did not have a class callback.

       object_final
           The last callback called for objects, useful if you want to post process  the  output  of  any  class
           callbacks.

       array
           Called for array references.

       hash
           Called for hash references.

       glob
           Called for glob references.

       scalar
           Called for scalar references.

       tied
           Called  on  the  return  value  of "tied" for all tied containers. Also passes in the variable as the
           second argument.

       seen
           Called for a reference value encountered a second time.

           Passes in the result mapping as the second argument.

SUPPORT

       Bugs may be submitted through the RT bug tracker <https://rt.cpan.org/Public/Dist/Display.html?Name=Data-
       Visitor> (or bug-Data-Visitor@rt.cpan.org <mailto:bug-Data-Visitor@rt.cpan.org>).

AUTHORS

       •   Yuval Kogman <nothingmuch@woobling.org>

       •   Marcel Grünauer <marcel@cpan.org>

COPYRIGHT AND LICENCE

       This software is copyright (c) 2023 by Yuval Kogman.

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

perl v5.36.0                                       2023-09-28                       Data::Visitor::Callback(3pm)