#!/usr/bin/perl -w use strict; my @list = qw{ key value marker key }; my %seen = (); my @newlist = (); foreach my $item (@list) { if (!$seen{$item}) { $seen{$item} = 1; push(@newlist, $item); } else { push(@newlist, "$item" . "$seen{$item}"); $seen{$item}++; } } print @newlist;