use strict; use warnings; use List::UtilsBy qw(nsort_by); 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); { local $, = "\n"; print nsort_by {s/Patch_//} @array }