version::Normal - More normal forms for version objects
version 0.1.1
use version::Normal; # 'v0.400' version->parse('0.4')->normal2; # '0.400.0' version->parse('0.4')->normal3;
This is alpha software. The API may change.
This module loads the version module and adds two methods to its objects. Those methods implement normal forms akin to the standard normal() method.
normal()
Furthermore, these normal forms have the following property:
NORMAL(v1) = NORMAL(v2) if v1 == v2
Notice that this property does not hold for normal(). For example, for two version numbers like 'v1.0.0' and 'v1.0.0.0' which satisfy
'v1.0.0'
'v1.0.0.0'
version->parse('v1.0.0') == version->parse('v1.0.0.0')
the following table of results can be computed
V 'v1.0.0' 'v1.0.0.0' version->parse(V)->normal() 'v1.0.0' ≠ 'v1.0.0.0' version->parse(V)->normal2() 'v1.0' = 'v1.0' version->parse(V)->normal3() '1.0.0' = '1.0.0'
version::Normal implements the following methods and installs them into version namespace.
$string = $version->normal2();
Returns a string with a normalized dotted-decimal form with a leading-v, at least 2 components, and no superfluous trailing 0.
Some examples are:
V version->parse(V)->normal2() 0.1 v0.100 v0.1 v0.1 v1 v1.0 0.010 v0.10 1.010 v1.10 0.3.10 v0.3.10 v0.0.0.0 v0.0 v0.1.0.0 v0.1
This form looks good when describing the version of a software component for humans to read (eg. at Changes file, --version output, etc.)
Changes
--version
$string = $version->normal3();
Returns a string with a normalized dotted-decimal form with no leading-v, at least 3 components, and no superfluous trailing 0.
V version->parse(V)->normal3() 0.1 0.100.0 v0.1 0.1.0 v1 1.0.0 0.010 0.10.0 1.010 1.10.0 0.3.10 0.3.10 v0.0.0.0 0.0.0 v0.1.0.0 0.1.0
This form is appropriate for distribution tarball names (like "version-Normal-0.1.0.tar.gz") – only digits and dots and no need for special interpretation of a leading-v.
"version-Normal-0.1.0.tar.gz"
version
The development of this library has been partially sponsored by Connectivity, Inc.
Adriano Ferreira <ferreira@cpan.org>
This software is copyright (c) 2018 by Adriano Ferreira.
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 version::Normal, copy and paste the appropriate command in to your terminal.
cpanm
cpanm version::Normal
CPAN shell
perl -MCPAN -e shell install version::Normal
For more information on module installation, please visit the detailed CPAN module installation guide.