use Data::Dump::Streamer;
...
my $cordinate_r = genedraw ($mid_r,$base_length,$margin);
Dump ($cordinate_r);
####
#! /usr/bin/perl -w
use Data::Dump::Streamer;
use strict;
my $base_length = 1000;
my $margin = 10;
my @midfield;
$midfield[0] = 'G6081 yaaX 5234 5530 + 6 6';
$midfield[1] = 'EG10011 yaaA 5683 6459 - 6 7';
$midfield[2] = 'EG11555 yaaJ 6529 7959 - 7 8';
my $mid_r = \@midfield;
my $cordinate_r = genedraw($mid_r,$base_length,$margin);
Dump ($cordinate_r);
foreach my $ref(@$cordinate_r)
{
my $line = join ' ', @$ref[0..6];
# splice field 7 into groups of four
my @ary = @{$ref->[7]};
my @coord;
while(@ary) {
push @coord, join ' ', splice @ary, 0, 4 ;
}
no warnings 'uninitialized';
write;
format STDOUT =
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<
$line, shift @coord
~@<<<<<<<<<<<<<<<<<<<<<<<<
shift @coord
.
}
sub genedraw
{
my ($arr, $Blength, $margin) = @_;
my @finalarr;
my @field = @{$arr};
foreach (@field)
{
my ($X2,$Y2);
my @temparray;
my @tmp = split(/\s+/); #### LINE A
my $X1 = ($tmp[2] - (($tmp[5] - 1) * $Blength)) + $margin;
my $Y1 = 80 * $tmp[5];
my $check = 1;
if ($tmp[5] != $tmp[6])
{
my $genestretchlines=$tmp[6]-$tmp[5];
for my $x (1 .. $genestretchlines)
{
if ($check == 1)
{
$X2 = $margin+$Blength;
$Y2 = 80 * $tmp[5];
$check = 2;
}
push @temparray, ($X1,$Y1,$X2,$Y2);
if ($x != $genestretchlines)
{
$X2 = $margin + $Blength;
$Y2 = 80 * ($tmp[5] + $x);
}
$X1 = $margin;
$Y1 = 80 * ($tmp[5] + $x);
}
}
$X2 = ($tmp[3] - (($tmp[6] - 1) * $Blength)) + $margin;
$Y2 = 80 * $tmp[6]; ##### LINE B
push @temparray, ($X1,$Y1,$X2,$Y2);
$tmp[7] = \@temparray;
# print "\n@{$tmp[7]}:::TEMP\n"; ## PRINT-1
push @finalarr, [@tmp];
}
return (\@finalarr);
}
####
$ARRAY1 = [
[
'G6081',
'yaaX',
5234,
5530,
'+',
( 6 ) x 2,
[
244,
480,
540,
480
]
],
[
'EG10011',
'yaaA',
5683,
6459,
'-',
6,
7,
[
693,
480,
1010,
480,
10,
560,
469,
560
]
],
[
'EG11555',
'yaaJ',
6529,
7959,
'-',
7,
8,
[
539,
560,
1010,
560,
10,
640,
969,
640
]
]
];
G6081 yaaX 5234 5530 + 6 6 244 480 540 480
EG10011 yaaA 5683 6459 - 6 7 693 480 1010 480
10 560 469 560
EG11555 yaaJ 6529 7959 - 7 8 539 560 1010 560
10 640 969 640