Anirban Adhikary wrote:
On Mon, Aug 25, 2008 at 5:34 PM, John W. Krahn <[EMAIL PROTECTED]> wrote:The usual way to do what you want is to use a hash: use strict; use warnings; print "Enter the Absolutepath of the file\t"; chomp( my $filename = <STDIN> ); open my $FH, '<', $filename or die "Cannot open '$filename' $!"; my %seen; while ( <$FH> ) { unless ( $seen{ $_ }++ ) { print; } } __END__Thanks a lot John . I have a little question can u please dexcribe in detail what this line is doing actually unless ( $seen{ $_ }++ )
$_ contains the current line from the file. ++ is the postfix auto-increment operator. The hash %seen contains the line from the file as the key and the number of times the line was "seen" as the value. The value of $seen{$_} is tested to see if it is true or false and after it is tested the value is incremented so if a line is not already in the hash the value will be false (undef) and that line will be printed.
John -- Perl isn't a toolbox, but a small machine shop where you can special-order certain sorts of tools at low cost and in short order. -- Larry Wall -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/
