Acme-CPANModules-DataStructureWalker

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

         "requires" : {
            "File::Spec" : "0",
            "IO::Handle" : "0",
            "IPC::Open3" : "0",
            "Test::More" : "0"
         }
      },
      "x_lists" : {
         "x_lists" : {
            "Data::Clean" : "0",
            "Data::Dmap" : "0",
            "Data::Leaf::Walker" : "0",
            "Data::Rmap" : "0",
            "Data::Transformer" : "0",
            "Data::Traverse" : "0",
            "Data::Visitor" : "0",
            "Data::Walk" : "0"
         }
      },
      "x_mentions" : {
         "x_mentions" : {
            "Data::Clean" : "0",
            "Data::Dmap" : "0",
            "Data::Leaf::Walker" : "0",
            "Data::Rmap" : "0",
            "Data::Transformer" : "0",
            "Data::Traverse" : "0",
            "Data::Visitor" : "0",
            "Data::Walk" : "0"
         }
      }
   },
   "provides" : {
      "Acme::CPANModules::DataStructureWalker" : {
         "file" : "lib/Acme/CPANModules/DataStructureWalker.pm",

README  view on Meta::CPAN

    Acme::CPANModules::DataStructureWalker (from Perl distribution
    Acme-CPANModules-DataStructureWalker), released on 2023-10-29.

DESCRIPTION
    This list catalogs modules that let you traverse your data structure by
    visiting each node/item: each element of an array, each key/value pair
    of a hash, recursively. Sort of like File::Find for your data instead of
    filesystem. These modules can be used for searching or modifying your
    data.

    Many modules in this list mimic Perl's "map" interface, for example:
    Data::Rmap, Data::Dmap, Data::Traverse. The difference among these
    modules lies in the details: in how you specify option to skip
    unsupported types of references, or whether some let you control the
    recursion (e.g. Data::Rmap's and Data::Dmap's "cut"),

    Data::Walk models its interface on File::Find. It lets you choose
    whether you want to go depth-first or breadth-first.

    Benchmarks for these modules coming soon.

    Related modules:

    Data::Clean can be used to clean/sanitize your data structure more
    performantly compared to your manual walking (e.g. using Data::Rmap). It
    works by generating Perl code specifically for your cleaning needs.

ACME::CPANMODULES ENTRIES
    Data::Rmap
        Author: BOWMANBS <https://metacpan.org/author/BOWMANBS>

    Data::Dmap
        Author: MADZ <https://metacpan.org/author/MADZ>

    Data::Visitor
        Author: ETHER <https://metacpan.org/author/ETHER>

    Data::Transformer
        Author: BALDUR <https://metacpan.org/author/BALDUR>

    Data::Traverse
        Author: FRIEDO <https://metacpan.org/author/FRIEDO>

lib/Acme/CPANModules/DataStructureWalker.pm  view on Meta::CPAN


our $LIST = {
    summary => "List of modules that traverse your data structure",
    description => <<'_',

This list catalogs modules that let you traverse your data structure by visiting
each node/item: each element of an array, each key/value pair of a hash,
recursively. Sort of like <pm:File::Find> for your data instead of filesystem.
These modules can be used for searching or modifying your data.

Many modules in this list mimic Perl's `map` interface, for example:
<pm:Data::Rmap>, <pm:Data::Dmap>, <pm:Data::Traverse>. The difference among
these modules lies in the details: in how you specify option to skip unsupported
types of references, or whether some let you control the recursion (e.g.
Data::Rmap's and Data::Dmap's `cut`),

<pm:Data::Walk> models its interface on File::Find. It lets you choose whether
you want to go depth-first or breadth-first.

Benchmarks for these modules coming soon.

Related modules:

<pm:Data::Clean> can be used to clean/sanitize your data structure more
performantly compared to your manual walking (e.g. using Data::Rmap). It works
by generating Perl code specifically for your cleaning needs.

_
    entries => [
        {module => 'Data::Rmap'},
        {module => 'Data::Dmap'},
        {module => 'Data::Visitor'},
        {module => 'Data::Transformer'},
        {module => 'Data::Traverse'},
        {module => 'Data::Leaf::Walker'},
        {module => 'Data::Walk'},

        {module => 'Data::Clean'},
    ],
};

lib/Acme/CPANModules/DataStructureWalker.pm  view on Meta::CPAN


This document describes version 0.003 of Acme::CPANModules::DataStructureWalker (from Perl distribution Acme-CPANModules-DataStructureWalker), released on 2023-10-29.

=head1 DESCRIPTION

This list catalogs modules that let you traverse your data structure by visiting
each node/item: each element of an array, each key/value pair of a hash,
recursively. Sort of like L<File::Find> for your data instead of filesystem.
These modules can be used for searching or modifying your data.

Many modules in this list mimic Perl's C<map> interface, for example:
L<Data::Rmap>, L<Data::Dmap>, L<Data::Traverse>. The difference among
these modules lies in the details: in how you specify option to skip unsupported
types of references, or whether some let you control the recursion (e.g.
Data::Rmap's and Data::Dmap's C<cut>),

L<Data::Walk> models its interface on File::Find. It lets you choose whether
you want to go depth-first or breadth-first.

Benchmarks for these modules coming soon.

Related modules:

L<Data::Clean> can be used to clean/sanitize your data structure more
performantly compared to your manual walking (e.g. using Data::Rmap). It works
by generating Perl code specifically for your cleaning needs.

=head1 ACME::CPANMODULES ENTRIES

=over

=item L<Data::Rmap>

Author: L<BOWMANBS|https://metacpan.org/author/BOWMANBS>

=item L<Data::Dmap>

Author: L<MADZ|https://metacpan.org/author/MADZ>

=item L<Data::Visitor>

Author: L<ETHER|https://metacpan.org/author/ETHER>

=item L<Data::Transformer>

Author: L<BALDUR|https://metacpan.org/author/BALDUR>

t/00-compile.t  view on Meta::CPAN

use IO::Handle;

open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";

my @warnings;
for my $lib (@module_files)
{
    # see L<perlfaq8/How can I capture STDERR from an external command?>
    my $stderr = IO::Handle->new;

    diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} . $str . q{'} }
            $^X, @switches, '-e', "require q[$lib]"))
        if $ENV{PERL_COMPILE_TEST_DEBUG};

    my $pid = open3($stdin, '>&STDERR', $stderr, $^X, @switches, '-e', "require q[$lib]");
    binmode $stderr, ':crlf' if $^O eq 'MSWin32';
    my @_warnings = <$stderr>;
    waitpid($pid, 0);
    is($?, 0, "$lib loaded ok");

    shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/



( run in 0.361 second using v1.01-cache-2.11-cpan-49f99fa48dc )