NAME
List::Util::MaybeXS - List::Util but with Pure Perl fallback
SYNOPSIS
use List::Util::MaybeXS qw(
reduce any all none notall first reductions
max maxstr min minstr product sum sum0
pairs unpairs pairkeys pairvalues pairfirst pairgrep pairmap
shuffle uniq uniqint uniqnum uniqstr zip mesh
);
DESCRIPTION
This module provides the same functions as List::Util, but falls back to pure perl implementations if the installed List::Util is too old to provide them.
Picking between List::Util's XS accellerated functions and the PP versions is done on a per-sub basis, so using this module should never result in a slowdown over using List::Util directly.
FUNCTIONS
- all
- any
- first
- min
- max
- minstr
- maxstr
- none
- notall
- product
- reduce
- reductions
- sum
- sum0
- sample
- shuffle
- uniq
- uniqnum
- uniqint
- uniqstr
- pairs
- unpairs
- pairkeys
- pairvalues
- pairmap
- pairgrep
- pairfirst
- head
- tail
- zip
- zip_longest
- zip_shortest
- mesh
- mesh_longest
- mesh_shortest
CONFIGURATION VARIABLES
- $RAND
-
The variables
$List::Util::RAND
,$List::Util::PP::RAND
, and$List::Util::MaybeXS::RAND
are all aliased to each other. Any of them will impact both List::Util::PP and List::Util functions.
DIFFERENCES FROM List::Util
As the subs provided are implemented in perl, there are some minor differences with the interface.
@_
in blocks-
Inside a callback block (such as
any { }
),@_
will be empty when using the pure perl implementation. With the XS implementation, the outer@_
will be visible. Under the perl debugger, the XS implementation will also not be able to see the outer@_
.
AUTHORS
Graham Knop <haarg@haarg.org>
Paul Evans <leonerd@leonerd.org.uk>
Graham Barr <gbarr@pobox.com>
CONTRIBUTORS
None so far.
COPYRIGHT
Copyright (c) 2017 the List::Util::MaybeXS "AUTHORS" and "CONTRIBUTORS" as listed above.
LICENSE
This library is free software and may be distributed under the same terms as perl itself. See http://dev.perl.org/licenses/.