Function::Version - Define and use different function versions
use Function::Version; # Define two versions of load() and dump() my $defn = Function::Version ->def('load', '1.5', sub { "load v1.5: $_[0]" }) ->def('load', '1.6', sub { "load v1.6: $_[0]" }) ->def('dump', '1.5', sub { "dump v1.5: $_[0]" }) ->def('dump', '1.6', sub { "dump v1.6: $_[0]" }) ; my $load = $defn->func('load') # Select load() v1.5 ->ver('1.5'); my $dump = $defn->func('dump') # Select dump() v1.6 ->ver('1.6'); # Call with arguments say $load->with('vista'); # load v1.5: vista say $dump->with('gems'); # dump v1.6: gems say $load->ver('1.6') # Use other versions ->with('hobbits'); # load v1.6: hobbits # Version does not revert say $load->with('ring'); # load v1.6: ring say $dump->func('load') # Using other function dies ->with('hobbits'); # Error: Assigned to dump()
This module provides a simple way to define and use different function versions.
One use case is when deploying changes to an application. Being able to select the function based on a version number is useful to roll-back or roll-forward changes.
Hoe Kit CHEW <hoekit@gmail.com>
Copyright 2021- Hoe Kit CHEW
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Function::Version, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Function::Version
CPAN shell
perl -MCPAN -e shell install Function::Version
For more information on module installation, please visit the detailed CPAN module installation guide.