perlquestion
MVRS
<p> hi friends , here a perl script written by me to merge link files</p>
<p>my input(link) is as following</p>
<p>link1 myco1 16 13013 color=chr1</p>
<p>link1 myco2 7419028 7432025 color=chr1</p>
<p>link2 myco1 13016 31245 color=chr1</p>
<p>link2 myco2 7432026 7450255 color=chr1</p>
<p>link3 myco1 31569 50386 color=chr1</p>
<p>link3 myco2 7450876 7469693 color=chr1</p>
<p>link4 myco1 53241 82019 color=chr1</p>
<p>link4 myco2 7472518 7501295 color=chr1</p>
<p>link5 myco1 82667 85039 color=chr1</p>
<p>link5 myco2 7511397 7513769 color=chr1</p>
<p>link6 myco1 85052 162535 color=chr1</p>
<p> link6 myco2 7513770 7591243 color=chr1</p>
<p>link7 myco1 3519888 3527802 color=chr10</p>
<p>link7 myco2 6192981 6200895 color=chr10</p>
<p>link8 myco1 3531711 3535088 color=chr10</p>
<p>link8 myco2 6200982 6204356 color=chr10</p>
<p>link9 myco1 3537764 3568351 color=chr10</p>
<p>link9 myco2 6204393 6234981 color=chr10</p>
<p>link10 myco1 3585050 3670398 color=chr10</p>
<p>link10 myco2 6236328 6321680 color=chr10</p>
<code>use strict;
use warnings;
my $JOB = $ARGV[0];
my $threshold = $ARGV[1];
my $fh = "/home/Desktop/merge/$JOB/src/link.txt";
open (INFILE_link,"<$fh") or die $!;
my @file_array;
while (my $line = <INFILE_link>) {
chomp $line;
my @line_array = split(/\s+/, $line);
push (@file_array, \@line_array);
}
my $arraySize_link = scalar (@file_array);
my $ix=1;
my ($i, $a, $b, $c, $d, $x, $w, $y, $z, $ta, $tb, $tc, $td);
$a= $b= $c= $d= $x= $w= $y= $z= $ta = $tb =$tc =$td= 0;
#open (FILE,'>'."$fh");
for ( $i=0; $i<$arraySize_link; $i+=2)
{
$ta = $file_array[$i][2];
$tb = $file_array[$i][3];
$tc = $file_array[$i+1][2];
$td = $file_array[$i+1][3];
if ($a=$b=$c=$d=$x=$w=$y=$z = 0)
{
$a = $x = $ta ;
$b = $y = $tb ;
$c = $w = $tc ;
$d = $z = $td ;
last;
}
if ( ($ta-$a) < $threshold && ($tc-$c) < $threshold)
{
# copy tabcd to abcd
$a = $ta ;
$b = $tb ;
$c = $tc ;
$d = $td ;
}
else
{
print "$file_array[$i][0] $file_array[$i][2] $file_array[$i+2][3]\n$file_array[$i+1][0] $file_array[$i+1][2] $file_array[$i+3][3]\n";
$a = $x = $ta ;
$b = $y = $tb ;
$c = $w = $tc ;
$d = $z = $td ;
}
} # end of for loop
if ($a=$b=$c=$d=$x=$w=$y=$z != 0)
{
print "$file_array[$i][0] $file_array[$i][2] $file_array[$i][3]\n$file_array[$i+1][0] $file_array[$i+1][2] $file_array[$i+1][3]\n";
}
</code>
<p>My out put</p>
<p>link1 16 31245</p>
<p>link1 7419028 7450255</p>
<p>link2 13016 50386</p>
<p>link2 7432026 7469693</p>
<p>link3 31569 82019</p>
<p>link3 7450876 7501295</p>
<p>link4 53241 85039</p>
<p>link4 7472518 7513769</p>
<p>link5 82667 162535</p>
<p>link5 7511397 7591243</p>
<p>link6 85052 3527802</p>
<p>link6 7513770 6200895</p>
<p>link7 3519888 3535088</p>
<p>link7 6192981 6204356</p>
<p>link8 3531711 3568351</p>
<p>link8 6200982 6234981</p>
<p>link9 3537764 3670398</p>
<p>link9 6204393 6321680</p>
<p>link10 3585050 </p>
<p>link10 6236328 </p>
<p>please help me in fixing the error and in the last two lines the numbers were not getting in the output please help me in fixing the problem and also help me in fixing the code with out warnings</p>
<p> here in the output as perl toolic reply he is right , please somebody suggest me in fixing this problem how can i change the code to fix this problem of for loop </p>