class Version

Module version descriptor

class Version { }

Version objects identify version of software components (and potentially other entities). Perl 6 uses them internally for versioning modules.

A version consists of several parts, which are visually represented by joining them with a dot. A version part is usually an integer, a string like alpha, or a Whatever-star *. The latter is used to indicate that any version part is acceptable in another version that is compared to the current one.

say v1.0.~~ v1.*;     # OUTPUT: «True␤» 

Version literals can only contain numeric and Whatever parts. They start with a lower-case v, and are followed by at least one part. Multiple parts are separate with a dot .. A trailing + indicates that higher versions are OK in comparisons:

say v1.~~ v1.0;       # OUTPUT: «False␤» 
say v1.~~ v1.0+;      # OUTPUT: «True␤» 

In comparisons, early parts take precedence over later parts.

say v1.cmp v2.1;      # OUTPUT: «Less␤» 

Please note that method calls, including pseudo methods like WHAT require version literals to be enclosed with parentheses.


method new

method new(Str:D $s)

Creates a Version from a string $s. The string is combed for the numeric, alphabetic, and wildcard components of the version object. Any characters other than alphanumerics and asterisks are assumed to be equivalent to a dot. A dot is also assumed between any adjacent numeric and alphabetic characters.

method parts

method parts(Version:D: --> List:D)

Returns the list of parts that make up this Version object

my $v1 = v1.0.1;
my $v2 = v1.0.1+;
say $;                                    # OUTPUT: «(1 0 1)␤» 
say $;                                    # OUTPUT: «(1 0 1)␤» 

method plus

method plus(Version:D: --> Bool:D)

Returns True if comparisons against this version allow larger versions too.

my $v1 = v1.0.1;
my $v2 = v1.0.1+;
say $;                                     # OUTPUT: «False␤» 
say $;                                     # OUTPUT: «True␤» 

method Str

method Str(Version:D: --> Str:D)

Returns a string representation of the invocant.

my $v1 = v1.0.1;
my $v2 ='1.0.1');
say $v1.Str;                                      # OUTPUT: «1.0.1␤» 
say $v2.Str;                                      # OUTPUT: «1.0.1␤» 

method gist

method gist(Version:D: --> Str:D)

Returns a string representation of the invocant, just like Str, prepended with a lower-case v.

my $v1 = v1.0.1;
my $v2 ='1.0.1');
say $v1.gist;                                      # OUTPUT: «v1.0.1␤» 
say $v2.gist;                                      # OUTPUT: «v1.0.1␤» 

method Capture

Defined as:

method Capture()

Throws X::Cannot::Capture.

Type Graph

Type relations for Version
perl6-type-graph Version Version Any Any Version->Any Mu Mu Any->Mu

Expand above chart