NAME
List::MapBruteBatch - Do a brute-force batched map()
though a list with a callback
SYNOPSIS
map_brute_batch($cb, \@list);
my @ret = map_brute_batch($cb, \@list, \$cb_success, \$cb_failure);
DESCRIPTION
Firstly. Why would you use this?
You have some N
number of items you want to process. You have some function that can take those N
, and it's much cheaper to do them in one big batch than one at a time.
However, any one of the N
items can fail, causing the entire batch of N
to fail with it. When that happens you either don't know which one failed the batch, or finding out would be tedious.
This module provides a map()
-like function to solve that problem. It'll attempt to process a \@list
you provide with a $cb
function that you provide.
If your $cb
doesn't return true we bisect the \@list
and call your $cb
on each half of the bisected list, and if those fail we repeat this process until we're processing one item, which may also fail.
You can optionally provide $cb_success
or $cb_failure
callbacks, those'll be called in map()
-like fashion on items that fail or succeed, respectively. You can use this to make the function return a list of items showing which items ended up failing or succeeding.
AUTHOR
Ævar Arnfjörð Bjarmason <avar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2013-2016 by Ævar Arnfjörð Bjarmason <avar@cpan.org>
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.