sorry for bothering you all, i made a silly mistake and i rectified it :) thanks for all your suggestions. now that there are other methods also for me to look at from all your suggestions :)
the corrections i did was:
if(defined($variant)){
foreach my $lis(@snplist){
if($queryinfo[2] eq $lis){$flag_left=1;}
elsif($queryinfo[3] eq $lis){$flag_right=1;}
}
if(($flag_left == 1) && ($flag_right == 1)){
print OUT "$_\t$rs\n";
$c++;
$flag_left=0;$flag_right=0;
}
else{
print OUT "$_\t-\n";
}
}
else{
print OUT "$_\t-\n";
}
i should just add an else statement under if.. thats all :)