The following solution isn't as short as the other solutions, but it will allow you to maintain the order of the original file:
#!/usr/bin/perl use warnings; use strict; my($last, $last_rec); while (<DATA>) { my @data = split; if ($last and $data[0] != $last) { print $last_rec; } elsif (eof) { print; } $last = $data[0]; $last_rec = $_; } __DATA__ 1 5 4 1 0 2 1 2 2 2 0 2 3 0 3 3 4 6 "Loan Tran" <[EMAIL PROTECTED]> wrote in message... > I would like to know if there is any way to process a > file using perl to get rid of extra records based on a > key value. > My key is the 1st field and in my output file I only > want 1 record per key and it has to be the last record > in the file. > > So for example here is my file: > 1 5 4 > 1 0 2 > 1 2 2 > 2 0 2 > 3 0 3 > 3 4 6 > And here is the output file I want: > 1 2 2 > 2 0 2 > 3 4 6 -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>