Dear every one: I try to write a perl script to delet the content of file carp01_1_both.txt as same as from another file carp-carp01_TKD181002053-1_1_sg.txt, so to get a new file from file carp-carp01_TKD181002053-1_1_sg.txt but excluding file carp01_1_both.txt. However, when I run this scrip, it does not work, and display the information as follows: ...
Semicolon seems to be missing at carp01_1_both.txt line 44993. Number found where operator expected at carp01_1_both.txt line 44994, near "55659 1" (Missing operator before 1?) Number found where operator expected at carp01_1_both.txt line 44994, near "ATCACG 55" (Do you need to predeclare ATCACG?) Number found where operator expected at carp01_1_both.txt line 44994, near "55 116" (Missing operator before 116?) syntax error at carp01_1_both.txt line 1, near "979:" carp01_1_both.txt: HISEQ:979:HM2HCBCX2:1:1110:15064:80819 1:N:0:ATCACG 62 123 250 62 + SINE3-1 45 106 590 HISEQ:979:HM2HCBCX2:1:2104:4144:84852 1:N:0:ATCACG 100 161 250 62 - SINE3-1 45 106 590 HISEQ:979:HM2HCBCX2:1:1102:2661:55870 1:N:0:ATCACG 141 202 250 62 + SINE3-1 45 106 590 HISEQ:979:HM2HCBCX2:1:1110:21298:76907 1:N:0:ATCACG 29 221 250 193 + SINE3-1 3 197 590 HISEQ:979:HM2HCBCX2:1:2116:10990:92099 1:N:0:ATCACG 95 151 250 57 + SINE3-1 45 101 590 ... carp-carp01_TKD181002053-1_1_sg.txt: HISEQ:979:HM2HCBCX2:1:1115:9907:8048 1:N:0:ATCACG 117 243 250 127 + SINE3-1a 210 335 570 HISEQ:979:HM2HCBCX2:1:2208:4628:64650 1:N:0:ATCACG 5 49 250 45 - SINE3-1 45 89 590 HISEQ:979:HM2HCBCX2:1:1212:6335:22852 1:N:0:ATCACG 2 250 250 249 + SINE3-1 234 486 590 HISEQ:979:HM2HCBCX2:1:1103:16183:52106 1:N:0:ATCACG 1 250 250 250 - SINE3-1a 229 474 570 HISEQ:979:HM2HCBCX2:1:2211:8958:6423 1:N:0:ATCACG 1 250 250 250 - SINE3-1a 117 367 570 HISEQ:979:HM2HCBCX2:1:1113:7857:35762 1:N:0:ATCACG 1 152 250 152 - SINE3-1 291 445 590 HISEQ:979:HM2HCBCX2:1:1206:12438:18002 1:N:0:ATCACG 1 249 250 249 - SINE3-1a 283 519 570 ... perl script: #!/usr/bin/perl -w open(NAME,"<$ARGV[0]")|| die; open(SECON,"<$ARGV[1]")|| die; open(SELEC,">$ARGV[2]")|| die; $name = ""; %pair = (); while(<NAME>){ chomp; my @line = split("\t",$_); $name = $line[0]; $pair{$name} = 1; } while(my $li = <SECON>){ chomp($li); my @line = split("\t",$li); $name = $line[0]; my $cont = $li; if (exists $hash{$name}) { # if current read appeared before next; } else { # if it haven't been read before print SELEC "$cont\n"; } } close NAME; close SECON; close SELEC; Sincerely Dong Liu -- 湖南师范大学生命科学院:刘 东 格言:积土而为山,积水而为海; 知识在于积累,成功在于勤奋。