use strict; use warnings; chomp(my @version = ); print join "\n", @version = map { join '.', unpack 'C*', $_ } sort map { pack 'C*', split /\./, $_ } @version; __DATA__ 1.2.3 1.3.4 1.2.31 1.12 1.12.1 1.12.12