use List::Compare; my @required_patches= qw(patch numbers that are required); my @current_machine_patches= ....; my $lc = List::Compare->new( {lists => [\@required_patches, \@current_machine_patches], accelerated => 1, unsorted => 1 }); my @missing_patches = $lc->get_Lonly;