Function::Fallback::CoreOrPP3pm
Functions that use non-core xs module but provide pure-perl/core fallback
Usage
use Function::Fallback::CoreOrPP qw(clone unbless uniq);my $clone = clone({blah=>1});my $unblessed = unbless($blessed_ref);my @uniq = uniq(1, 3, 2, 1, 4); # -> (1, 3, 2, 4)
Version
This document describes version 0.090 of Function::Fallback::CoreOrPP (from Perl distribution Function-Fallback-CoreOrPP), released on 2020-02-03.
Overview
This module provides functions that use non-core XS modules (for best speed, reliability, feature, etc) but falls back to those that use core XS or pure-Perl modules when the non-core XS module is not available.
This module helps when you want to bootstrap your Perl application with a portable, dependency-free Perl script. In a vanilla Perl installation (having only core modules), you can use App::FatPacker to include non-core pure-Perl dependencies to your script.
Functions
clone($data) => $cloned
Try to use Data::Clone's "clone", but fall back to using Clone::PP's "clone".
clone_list(@data) => @data
A shortcut for:
return map {clone($_)} @data
unbless($ref) => $unblessed_ref
Try to use Acme::Damn's "damn" to unbless a reference but fall back to shallow copying.
NOTE: "damn()" MODIFIES the original reference. (XXX in the future an option to clone the reference first will be provided), while shallow copying will return a shallow copy.
NOTE: The shallow copy method currently only handles blessed {scalar,array,hash}ref as those are the most common.
uniq(@ary) => @uniq_ary
Try to use List::MoreUtils's "uniq", but fall back to using slower, pure-Perl implementation.
Homepage
Please visit the project's homepage at <https://metacpan.org/release/Function-Fallback-CoreOrPP>.
Source
Source repository is at <https://github.com/perlancar/perl-Function-Fallback-CoreOrPP>.
Copyright and license
This software is copyright (c) 2020, 2017, 2016, 2014 by [email protected].
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
Releases
5 releases since Debian 9 (Stretch); the text changed 2 times.