#!/usr/local/bin/perl use strict; use warnings; my @lines = ; my (@uniq, @purge, %seen); for my $line (@lines) { my ($id) = $line =~ m/ID No: (\d+)/; if (not exists $seen{$id}){ push @uniq, $line; $seen{$id} = undef; } else { push @purge, $line; } } print qq{uniq\n}; print @uniq; print qq{purge\n}; print @purge; __DATA__ lat="37.4192" lng="-122.0574" United States ID No: 1123631397 lat="37.4192" lng="-122.0574" United States ID No: 1123631397 lat="37.4192" lng="-122.0574" United States ID No: 1123631398 lat="37.4192" lng="-122.0574" United States ID No: 1123631399 lat="37.4192" lng="-122.0574" United States ID No: 1123631400 lat="37.4192" lng="-122.0574" United States ID No: 1123631400 #### uniq lat="37.4192" lng="-122.0574" United States ID No: 1123631397 lat="37.4192" lng="-122.0574" United States ID No: 1123631398 lat="37.4192" lng="-122.0574" United States ID No: 1123631399 lat="37.4192" lng="-122.0574" United States ID No: 1123631400 purge lat="37.4192" lng="-122.0574" United States ID No: 1123631397 lat="37.4192" lng="-122.0574" United States ID No: 1123631400