Hi Senthil,
Pls. try the below.
@Data=<DATA>; foreach $line(@Data) { if ($line=~s#(<h([0-9]+)>(?:.+?))#$1#) { $curr=$2; $endtag='</table>'; $line=~s#^(<h[0-9]+>)?(.+?$)#$1<tr><td>$2</td></tr>#; if ($prev=~m#^$#) { $line=~s#<h[0-9]+>#<table>#g; } elsif ($prev == $curr) { $line=~s#<h[0-9]+>##; } elsif ($prev > $curr) { $x=$prev-$curr; for ($i=0; $i<$x; $i++) { $line="$endtag\n".$line; } $line=~s#<h[0-9]+>##; } $line=~s#<h[0-9]+>#<table>#g; } $prev=$curr; $Final.=$line; } $Final=$Final.'</table>'; print $Final; __DATA__ <h1>Heading Level 1 <h2>Heading Level 2 <h2>Heading Level 2 <h2>Heading Level 2 <h3>Heading Level 3 <h3>Heading Level 3 <h2>Heading Level 2 <h1>Heading Level 1
Output:
<table><tr><td>Heading Level 1</td></tr> <table><tr><td>Heading Level 2</td></tr> <tr><td>Heading Level 2</td></tr> <tr><td>Heading Level 2</td></tr> <table><tr><td>Heading Level 3</td></tr> <tr><td>Heading Level 3</td></tr> </table> <tr><td>Heading Level 2</td></tr> </table> <tr><td>Heading Level 1</td></tr> </table>
Thanks,
Gopal.R.
In reply to Re: convert text to HTML Format Table.
by gopalr
in thread convert text to HTML Format Table.
by perlsen
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |