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 Paul Evans Graham Barr 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 .