Function::Fallback::CoreOrPP - Functions that use non-core XS module but provide pure-Perl/core fallback
This document describes version 0.07 of Function::Fallback::CoreOrPP (from Perl distribution Function-Fallback-CoreOrPP), released on 2016-01-16.
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)
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.
Try to use Data::Clone's clone, but fall back to using Clone::PP's clone.
clone
A shortcut for:
return map {clone($_)} @data
Try to use Acme::Damn's damn to unbless a reference but fall back to shallow copying.
damn
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.
damn()
NOTE: The shallow copy method currently only handles blessed {scalar,array,hash}ref as those are the most common.
Try to use List::MoreUtils's uniq, but fall back to using slower, pure-Perl implementation.
uniq
Clone::Any can also uses multiple backends, but I avoid it because I don't think Storable's dclone should be used (no Regexp support out of the box + must use deparse to handle coderefs).
dclone
Please visit the project's homepage at https://metacpan.org/release/Function-Fallback-CoreOrPP.
Source repository is at https://github.com/sharyanto/perl-Function-Fallback-CoreOrPP.
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Function-Fallback-CoreOrPP
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
perlancar <perlancar@cpan.org>
This software is copyright (c) 2016 by perlancar@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.
To install Function::Fallback::CoreOrPP, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Function::Fallback::CoreOrPP
CPAN shell
perl -MCPAN -e shell install Function::Fallback::CoreOrPP
For more information on module installation, please visit the detailed CPAN module installation guide.