#!/usr/bin/env perl use strict; use warnings; use feature qw(say); use Data::Dump; my @array = qw(Patch_1.0 Patch_2.0 Patch_3.1 Patch_5.0 Patch_4.2 Patch_6.0 Patch_7.0 Patch_8.0 Patch_9.3 Patch_10.2); dd \@array; say for sort { $a <=> $b } map { /.+_(.+)/; $1 } @array; __END__ karls-mac-mini:playground karl$ ./levW.pl [ "Patch_1.0", "Patch_2.0", "Patch_3.1", "Patch_5.0", "Patch_4.2", "Patch_6.0", "Patch_7.0", "Patch_8.0", "Patch_9.3", "Patch_10.2", ] 1.0 2.0 3.1 4.2 5.0 6.0 7.0 8.0 9.3 10.2