use warnings; undef $/; open(A3,"a.xml") or die "$!"; open(B3, ">a4.xml") or die("Sorry!"); my $tab_space = 16; my ($xx, $yy, $wid, $heig, $pag, $inx, $xx1, $yy1, $wid1, $heig1, $pag1, $inx1, $inx2, $xx2, $yy2, $wid2, $heig2, $pag2, $xx3, $yy3, $wid3, $heig3, $pag3, $inx3, $size, $face, $color); my ($content1, $wid1_new, $wid_new1); $content1 = ; $content1 =~s/\n//gi; while($content1 =~m/(.*?)<\/text>(.*?)<\/text>(.*?)<\/text><\/font>/gi){ $size = $1; $face = $2; $color = $3; $xx1 = $4; $yy1 = $5; $wid1 = $6; $heig1 = $7; $pag1 = $8; $inx1 = $9; $xx2 = $10; $yy2 = $11; $wid2 = $12; $heig2 = $13; $pag2 = $14; $inx2 = $15; $xx3 = $16; $yy3 = $17; $wid3 = $18; $heig3 = $19; $pag3 = $20; $inx3 = $21; if ($yy1 == $yy2 && $yy2 == $yy3 && $pag1 == $pag2 && $pag2 == $pag3){ $wid1_new = $wid1 + $wid2 + $wid3 + $tab_space; print B3 "$inx1^^^$inx2%%%$inx3<\/text>\n"; } else { print B3 "\n$inx1<\/text>\n"; print B3 "$inx2<\/text>\n"; print B3 "$inx3<\/text>\n\n"; } } close (A3); close (B3);