1Alien::Build::Version::UBsaesricC(o3n)tributed Perl DocuAmleinetna:t:iBounild::Version::Basic(3)
2
3
4
6 Alien::Build::Version::Basic - Very basic version object for
7 Alien::Build
8
10 version 2.77
11
13 OO interface:
14
15 use Alien::Build::Version::Basic;
16
17 my $version = Alien::Build::Version::Basic->new('1.2.3');
18 if($version > '1.2.2') # true
19 {
20 ...
21 }
22
23 Function interface:
24
25 use Alien::Build::Version::Basic qw( version );
26
27 if(version('1.2.3') > version('1.2.2')) # true
28 {
29 ...
30 }
31
32 my @sorted = sort map { version($_) } qw( 2.1 1.2.3 1.2.2 );
33 # will come out in the order 1.2.2, 1.2.3, 2.1
34
36 This module provides a very basic class for comparing versions. This
37 is already a crowded space on CPAN. Parts of Alien::Build already use
38 Sort::Versions, which is fine for sorting versions. Sometimes you need
39 to compare to see if versions match exact values, and the best
40 candidates (such as Sort::Versions on CPAN compare 1.2.3.0 and 1.2.3 as
41 being different. This class compares those two as the same.
42
43 This class is also quite limited, in that it only works with version
44 schemes using a doted version numbers or real numbers with a fixed
45 number of digits. Versions with: dashes, letters, hex digits, or
46 anything else are not supported.
47
48 This class overloads both "<=>" and "cmp" to compare the version in the
49 way that you would expect for version numbers. This way you can
50 compare versions like numbers, or sort them using sort.
51
52 if(version($v1) > version($v2))
53 {
54 ...
55 }
56
57 my @sorted = sort map { version($_) } @unsorted;
58
59 it also overloads "" to stringify as whatever string value you passed
60 to the constructor.
61
63 new
64 my $version = Alien::Build::Version::Basic->new($value);
65
66 This is the long form of the constructor, if you don't want to import
67 anything into your namespace.
68
69 version
70 my $version = version($value);
71
72 This is the short form of the constructor, if you are sane. It is NOT
73 exported by default so you will have to explicitly import it.
74
76 as_string
77 my $string = $version->as_string;
78 my $string = "$version";
79
80 Returns the string representation of the version object.
81
82 cmp
83 my $bool = $version->cmp($other);
84 my $bool = $version <=> $other;
85 my $bool = $version cmp $other;
86
87 Returns "-1", 0 or 1 just like the regular "<=>" and "cmp" operators.
88 Although $version must be a version object, $other may be either a
89 version object, or a string that could be used to create a valid
90 version object.
91
93 Sort::Versions
94 Good, especially if you have to support rpm style versions (like
95 "1.2.3-2-b") or don't care if trailing zeros (1.2.3 vs 1.2.3.0) are
96 treated as different values.
97
98 version
99 Problematic for historical reasons.
100
102 Author: Graham Ollis <plicease@cpan.org>
103
104 Contributors:
105
106 Diab Jerius (DJERIUS)
107
108 Roy Storey (KIWIROY)
109
110 Ilya Pavlov
111
112 David Mertens (run4flat)
113
114 Mark Nunberg (mordy, mnunberg)
115
116 Christian Walde (Mithaldu)
117
118 Brian Wightman (MidLifeXis)
119
120 Zaki Mughal (zmughal)
121
122 mohawk (mohawk2, ETJ)
123
124 Vikas N Kumar (vikasnkumar)
125
126 Flavio Poletti (polettix)
127
128 Salvador Fandiño (salva)
129
130 Gianni Ceccarelli (dakkar)
131
132 Pavel Shaydo (zwon, trinitum)
133
134 Kang-min Liu (劉康民, gugod)
135
136 Nicholas Shipp (nshp)
137
138 Juan Julián Merelo Guervós (JJ)
139
140 Joel Berger (JBERGER)
141
142 Petr Písař (ppisar)
143
144 Lance Wicks (LANCEW)
145
146 Ahmad Fatoum (a3f, ATHREEF)
147
148 José Joaquín Atria (JJATRIA)
149
150 Duke Leto (LETO)
151
152 Shoichi Kaji (SKAJI)
153
154 Shawn Laffan (SLAFFAN)
155
156 Paul Evans (leonerd, PEVANS)
157
158 Håkon Hægland (hakonhagland, HAKONH)
159
160 nick nauwelaerts (INPHOBIA)
161
162 Florian Weimer
163
165 This software is copyright (c) 2011-2022 by Graham Ollis.
166
167 This is free software; you can redistribute it and/or modify it under
168 the same terms as the Perl 5 programming language system itself.
169
170
171
172perl v5.36.0 2023-01-20 Alien::Build::Version::Basic(3)