in reply to Removing duplicate lines based on a match

I think you'll get a bit further if you use exists to test for uniqueness.
#!/usr/local/bin/perl use strict; use warnings; my @lines = <DATA>; 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
output
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