http://www.perlmonks.org?node_id=660265

nashkab has asked for the wisdom of the Perl Monks concerning the following question:

I Have a file which looks like this:-
COMPUTER DISTRIBUTION_ID STATUS 30F-WKS `1781183799.xxxx1' IC--- 30F-WKS `1781183799.xxx11' IC--- ADM34A3F9 `1781183799.41455' IC---

IF TWO RECORDS EXIST FOR THE SAME INSTANCE OF COMPUTER... I WANT TO KEEP THE FINAL RECORD AND REMOVE THE FIRST RECORD. FOR EXAMPLE, COMPUTER 30F-WKS HAS TWO RECORDS.I WANT TO REMOVE THE FIRST RECORD AND KEEP THE SECORD.

I have used the following code:-

open(FILE2,">file1.txt")|| warn "Could not open\n"; open(FILE3,"file2.txt")|| warn "Could not open\n"; my $Previous = ""; my @data = <FILE3>; $index=0; foreach $_data (@data) { $index++; chomp ($_data); @Current = split(/\t/, $_data); @Previous = split(/\t/, $Previous); if (@Current[0] ne @Previous[0]) { if ($index == 1) { # do nothing. } else { print FILE2 $Previous; } } else {} $Previous = $_data; } close(FILE2); close(FILE3);

So the output file will look like this:-

COMPUTER DISTRIBUTION_ID STATUS</br> 30F-WKS `1781183799.xxx11' IC---</br> ADM34A3F9 `1781183799.41455' IC---</br>