Topology IPClassA subnet_address Topology IPClassA Device = 1 log_ratio Topology IPClassA Device = 1 Port = 1 poll_interval Topology IPClassC security_string Topology IPClassC Device = 2 Port = 2 poll_interval #### use strict; # Global data structures use vars qw(@foo @bar); @bar = qw(Topology IPClassA subnet_address Topology IPClassA Device=1 log_ratio Topology IPClassA Device=1 Port=1 poll_interval Topology IPClassC security_string Topology IPClassC Device=2 Port=2 poll_interval); my $i = 0; my $j = 1; print "Foo Before:\n\n"; foreach $_ (@bar){ print "$_\n";} push @foo, "Topology"; foreach $_ (@bar) { if ($bar[$i] eq $bar[$j]) { $i ++; $j ++; } else { push @foo, $bar[$j]; $i = 0; $j ++; } } print "\nFoo After:\n\n"; foreach $_ (@foo){ print "$_\n";} #### Foo Before: Topology IPClassA subnet_address Topology IPClassA Device=1 log_ratio Topology IPClassA Device=1 Port=1 poll_interval Topology IPClassC security_string Topology IPClassC Device=2 Port=2 poll_interval Foo After: Topology IPClassA subnet_address Device=1 log_ratio Device=1 Port=1 poll_interval IPClassC security_string IPClassC Device=2 Port=2 poll_interval #### Foo After: Topology IPClassA subnet_address Device=1 log_ratio Port=1 poll_interval Topology IPClassC security_string Device=2 Port=2 poll_interval