SPVM::Sort - Sorting Functions
# Sort a byte array in-place by asc order my $array = [(byte)2, 3, 1]; Sort->sort_byte($array, method : int ($a : byte, $b : byte) { return $a <=> $b; }); # Sort short array in-place by asc order my $array = [(short)2, 3, 1]; Sort->sort_short($array, method : int ($a : short, $b : short) { return $a <=> $b; }); # Sort int array in-place by asc order my $array = [2, 3, 1]; Sort->sort_int($array, method : int ($a : int, $b : int) { return $a <=> $b; }); # Sort long array in-place by asc order my $array = [(long)2, 3, 1]; Sort->sort_long($array, method : int ($a : long, $b : long) { return $a <=> $b; }); # Sort float array in-place by asc order my $array = [(float)2, 3, 1]; Sort->sort_float($array, method : int ($a : float, $b : float) { return $a <=> $b; }); # Sort double array in-place by asc order my $array = [(double)2, 3, 1]; Sort->sort_double($array, method : int ($a : double, $b : double) { return $a <=> $b; }); # Sort string array in-place by asc order my $array = ["11", "1", "2", undef, ""]; Sort->sort_string($array, method : int ($a : string, $b : string) { return $a cmp $b; }); # Sort object array in-place by asc order my $minimals = new TestCase::Minimal[3]; $minimals->[0] = TestCase::Minimal->new; $minimals->[0]{x} = 3; $minimals->[0]{y} = 5; $minimals->[1] = TestCase::Minimal->new; $minimals->[1]{x} = 3; $minimals->[1]{y} = 7; $minimals->[2] = TestCase::Minimal->new; $minimals->[2]{x} = 2; $minimals->[2]{y} = 9; Sort->sort_object($minimals, method : int ($object1 : object, $object2 : object) { my $minimal1 = (TestCase::Minimal)$object1; my $minimal2 = (TestCase::Minimal)$object2; return $minimal1->{x} <=> $minimal2->{x} || $minimal1->{y} <=> $minimal2->{y}; };
Sort provides sorting functions. The sorting algorithm is a stable merge sort.
Sort
static method sort_byte : void ($array : byte[], $comparator : Comparator::Byte, $offset = 0 : int, $length = -1 : int)
Sort the range of the elements of byte array in-place.
byte
The sorted range is from the offset to the position proceeded by the length.
If the length is less than 0, the length to the end of the string is calculated from the length of the array and the offset.
0
The Comparator::Byte comparator is used to compare each element.
The array must be defined. Otherwise an exception will be thrown.
The offset must be greater than or equal to 0. Otherwise an exception will be thrown.
The comparator must be defined. Otherwise an exception will be thrown.
The offset + length must be less than or equal to the length of the elements. Otherwise an exception will be thrown.
method sort_byte_asc : void ($array : byte[], $offset = 0 : int, $length = -1 : int)
The alias for the following code using "sort_byte"
Sort->sort_byte($array, method : int ($a : byte, $b : byte) { return $a <=> $b; }, $offset, $length);
static method sort_byte_desc : void ($array : byte[], $offset = 0 : int, $length = -1 : int)
Sort->sort_byte($array, method : int ($a : byte, $b : byte) { return $b <=> $a; }, $offset, $length);
static method sort_double : void ($array : double[], $comparator : Comparator::Double, $offset = 0 : int, $length = -1 : int)
Sort the range of the elements of double array in-place.
double
The Comparator::Double comparator is used to compare each element.
static method sort_double_asc : void ($array : double[], $offset = 0 : int, $length = -1 : int)
The alias for the following code using "sort_double"
Sort->sort_double($array, method : int ($a : double, $b : double) { return $a <=> $b; }, $offset, $length);
static method sort_double_desc : void ($array : double[], $offset = 0 : int, $length = -1 : int)
Sort->sort_double($array, method : int ($a : double, $b : double) { return $b <=> $a; }, $offset, $length);
static method sort_float : void ($array : float[], $comparator : Comparator::Float, $offset = 0 : int, $length = -1 : int)
Sort the range of the elements of float array in-place.
float
The Comparator::Float comparator is used to compare each element.
static method sort_float_asc : void ($array : float[], $offset = 0 : int, $length = -1 : int)
The alias for the following code using "sort_float"
Sort->sort_float($array, method : int ($a : float, $b : float) { return $a <=> $b; }, $offset, $length);
static method sort_float_desc : void ($array : float[], $offset = 0 : int, $length = -1 : int)
Sort->sort_float($array, method : int ($a : float, $b : float) { return $b <=> $a; }, $offset, $length);
static method sort_int : void ($array : int[], $comparator : Comparator::Int, $offset = 0 : int, $length = -1 : int)
Sort the range of the elements of int array in-place.
int
The Comparator::Int comparator is used to compare each element.
static method sort_int_asc : void ($array : int[], $offset = 0 : int, $length = -1 : int)
The alias for the following code using "sort_int"
Sort->sort_int($array, method : int ($a : int, $b : int) { return $a <=> $b; }, $offset, $length);
static method sort_int_desc : void ($array : int[], $offset = 0 : int, $length = -1 : int)
Sort->sort_int($array, method : int ($a : int, $b : int) { return $b <=> $a; }, $offset, $length);
static method sort_long : void ($array : long[], $comparator : Comparator::Long, $offset = 0 : int, $length = -1 : int)
Sort the range of the elements of long array in-place.
long
The Comparator::Long comparator is used to compare each element.
method sort_long_asc : void ($array : long[], $offset = 0 : int, $length = -1 : int)
The alias for the following code using "sort_long"
Sort->sort_long($array, method : int ($a : long, $b : long) { return $a <=> $b; }, $offset, $length);
static method sort_long_desc : void ($array : long[], $offset = 0 : int, $length = -1 : int)
Sort->sort_long($array, method : int ($a : long, $b : long) { return $b <=> $a; }, $offset, $length);
static method sort_object : void ($array : object[], $comparator : Comparator, $offset = 0 : int, $length = -1 : int)
Sort the range of the elements of object array in-place.
The Comparator comparator is used to compare each element.
static method sort_short : void ($array : short[], $comparator : Comparator::Short, $offset = 0 : int, $length = -1 : int)
Sort the range of the elements of short array in-place.
short
static method sort_short_asc : void ($array : short[], $offset = 0 : int, $length = -1 : int)
The alias for the following code using "sort_short"
Sort->sort_short($array, method : int ($a : short, $b : short) { return $a <=> $b; }, $offset, $length);
static method sort_short_desc : void ($array : short[], $offset = 0 : int, $length = -1 : int)
Sort->sort_short($array, method : int ($a : short, $b : short) { return $b <=> $a; }, $offset, $length);
static method sort_string : void ($array : string[], $comparator : Comparator::String, $offset = 0 : int, $length = -1 : int)
Sort the range of the elements of string array in-place.
string
static method sort_string_asc : void ($array : string[], $offset = 0 : int, $length = -1 : int)
The alias for the following code using "sort_string"
Sort->sort_string($array, method : int ($a : string, $b : string) { return $a cmp $b; }, $offset, $length);
static method sort_string_desc : void ($array : string[], $offset = 0 : int, $length = -1 : int)
Sort->sort_string($array, method : int ($a : string, $b : string) { return $b cmp $a; }, $offset, $length);
To install SPVM, copy and paste the appropriate command in to your terminal.
cpanm
cpanm SPVM
CPAN shell
perl -MCPAN -e shell install SPVM
For more information on module installation, please visit the detailed CPAN module installation guide.