I'm here to know how to remove duplicate lines
use strict;
use warnings;
my $input = input.txt;
my $output = output.txt;
my %seen;
open("OP",">$output") or die;
open("IP","<$input") or die;
while(my $DATA = <IP>)
{
$DATA =~ tr/|/-/;
my @lines = split("-",$DATA);
chomp @lines;
my @contries = grep { !$seen{$_}++ } @lines;
my $original = join("|",@contries);
print "$original\n";
}
close("IP");
close("OP");
input:
india|india|india|group|group|status
india|india|india|group|group|status
australia|australia|australia|group|group|status
america|america|america|group|group|status
singapore|singapore|singapore|group|group|status
india|india|india|group|group|status
america|america|america|group|group|status
Expected Output:
india|india|india|group|group|status
australia|australia|australia|group|group|status
america|america|america|group|group|status
singapore|singapore|singapore|group|group|status
when I run the above code I'm getting output like
india|group|status
australia
america
singapore
status
I don't know why I'm getting empty line in second row
input.txtandoutput.txt. And even once the quotes are added, the output of the script is not what you say it is. Fix you code, run it locally to make sure it behaves as you said it does, and then edit your question accordingly.