#!/usr/bin/perl use strict; use Data::Dumper; my @harray = ( "Size", "Buffer Size", "Value", "Size", "Buffer Size", "Value", "Size", "Buffer Size", "Value" ); my @OneHead = ("Size", "Buffer Size" ); my %seen = map { $_ => 0 } @OneHead; my @results = grep { /(\w+)/; my $s = $1; !exists $seen{$s} or ($seen{$s}++ < 1); } @harray; local $" = $/; print "@results\n"; OUTPUT: ------ @result = ("Size", "Buffer Size", "Value", "Value", "value");