http://www.perlmonks.org?node_id=814078


in reply to Sorting an array containing version numbers

Have a look at Sort::Versions - a perl 5 module for sorting of revision-like numbers, too.

#!/usr/bin/perl use strict; use warnings; use Sort::Versions; # exports versions and versioncmp my @version_numbers = qw( 1.1 1.1.1 1.2.1 1.2 1.4 1.6.1 1.6 0.9 1.1.a 1.1.b 1.3 1.5.1 1.5 2.3.5-0022 2.3.5-0041 2.1.4.0046 ); my @sorted = sort versioncmp @version_numbers; print join("\n", @sorted), "\n";

Running above code yields

0.9 1.1 1.1.1 1.1.a 1.1.b 1.2 1.2.1 1.3 1.4 1.5 1.5.1 1.6 1.6.1 2.1.4.0046 2.3.5-0022 2.3.5-0041

HTH, Thomas