#!/usr/bin/perl -w use strict; use warnings; use Data::Dumper; my @ar1=qw(F40_I_VBBG_RI50-FMVSS301n-2SR424M-HCH-D_01EK101.a3db F40_I_VBBG_RI50-FMVSS301n-2SR424M-HCH-D_01EK101a.a3db F40_I_VBBG_LR50-ECR17p-2SR424M-HCH-D_01EK101g.a3db F40_I_VBBG_LR50-ECR17p-2SR424M-HCH-D_01EK101k.a3db F40_I_VBBG_LR50-ECR17p-2SR424M-HCH-D_01EK101.a3db ); #my @lastversion = values %{{ map { /EK(\d+)\w?/, $_ } sort @ar2 }}; my %latest; @latest{ /EK(\d+)\D/ } = $_ for sort @ar1; my @lastversion = @latest{sort {$a <=> $b} keys %latest}; foreach (@lastversion) { #print "@lastversion\n"; print "$_\n"; } #print Dumper(\%latest);