open my $FH2, '<', '/tmp/fileread' or die "unable to open file 'file' for reading : $!"; open my $FH6, '>', '/tmp/tst.txt' or die "unable to open file 'file' for reading : $!"; my %duplicates; while (<$FH2>) { chomp; my ($column_1, $column_2, $column_3) = split /,/; print {$FH6} "$column_1\n" if defined $duplicates{$column_2} && $duplicates{$column_3}; $duplicates{$column_2}++; } close $FH6; close $FH2; open my $fh, '<', '/tmp/tst.txt' or die "unable to open file 'file' for reading : $!"; while (my $line = <$fh>) { print $line; } close $fh;