{'xpdf-.-' => ['xpdf-00001.00001-00010', 'xpdf-1.01-10'];} #### #! perl -slw use strict; my %current = map{ (my $key = $_) =~ s[[\d.]+][]g; (my $comp = $_) =~ s[(\d+)][ sprintf'%05d', $1]ge; $key => [ $comp, $_ ]; } qw[ zip-2.3.1-14 xpdf-1.01-8 ggv-1.99.8-2 libpng-devel-1.2.2-8 xvattr-1.3-ogle1 ]; my %updates = map{ (my $key = $_) =~ s[[\d.]+][]g; (my $comp = $_) =~ s[(\d+)][ sprintf'%05d', $1]ge; $key => [ $comp, $_ ]; } qw[ WindowMaker-0.80.1-5 lynx-2.8.5-7.1 xpdf-1.01-10 ggv-1.99.9-5 xvattr-1.4-ogle1 libpng-devel-1.2.2-9 ]; for my $pkg (keys %current) { if (exists $updates{$pkg} and $updates{$pkg}[0] gt $current{$pkg}[0] ){ print 'Update ', $updates{$pkg}[1], $/ , ' available for: ', $current{$pkg}[1]; } } __END__ C:\test>240384 Update xvattr-1.4-ogle1 available for: xvattr-1.3-ogle1 Update xpdf-1.01-10 available for: xpdf-1.01-8 Update ggv-1.99.9-5 available for: ggv-1.99.8-2 Update libpng-devel-1.2.2-9 available for: libpng-devel-1.2.2-8