in reply to How to add hyperlink for every table data using perl?

G'day finddata,

Welcome to the Monastery.

You have quite a few issues with your Perl and HTML code. In addition, there's important information missing from your post.

Based on your code, I made a very rough guess at what your input might look like. Here's the guts of what I think you probably want. You'll no doubt need to make quite a few changes, but this should be a sound starting point.

#!/usr/bin/perl -l use strict; use warnings; while (<DATA>) { chomp; s/(?:COMMENT|[&\\_@])//g; my @data = split /:/; print '<tr class="', $data[0] ? 'norm' : 'bold', '">', '<td>', join('</td><td>', @data[1,2]), '</td>', '<td><a href="#', $data[3], '">', $data[4], '</a></td></tr>'; } __DATA__ 0:A:B:frag1:name1 1:C:D:frag2:name2 0:E:F:fr&ag3:naCOMMENTme3 1:G:H:fr\ag4:_name4 0:I:J:fr@ag5:name5

Output:

<tr class="bold"><td>A</td><td>B</td><td><a href="#frag1">name1</a></t +d></tr> <tr class="norm"><td>C</td><td>D</td><td><a href="#frag2">name2</a></t +d></tr> <tr class="bold"><td>E</td><td>F</td><td><a href="#frag3">name3</a></t +d></tr> <tr class="norm"><td>G</td><td>H</td><td><a href="#frag4">name4</a></t +d></tr> <tr class="bold"><td>I</td><td>J</td><td><a href="#frag5">name5</a></t +d></tr>

— Ken

Replies are listed 'Best First'.
Re^2: How to add hyperlink for every table data using perl?
by Anonymous Monk on Mar 09, 2017 at 19:35 UTC
    TIMTOWTDI!
    use strict; use warnings; use Spreadsheet::HTML qw(generate); my @data = map { chomp; s/(?:COMMENT|[&\\_@])//g; [split /:/] } <DATA +>; my @class = map { map $_ ? 'norm' : 'bold', splice @$_, 0, 1 } @data; my @frag = map { splice @$_, 2, 1 } @data; print generate( data => \@data, matrix => 1, indent => ' ', tr => { class => \@class }, -c2 => sub { sprintf '<a href="#%s">%s</a>', shift(@frag), shift } ); __DATA__ 0:A:B:frag1:name1 1:C:D:frag2:name2 0:E:F:fr&ag3:naCOMMENTme3 1:G:H:fr\ag4:_name4 0:I:J:fr@ag5:name5
    Output:
    <table> <tr class="bold"> <td>A</td> <td>B</td> <td><a href="#frag1">name1</a></td> </tr> <tr class="norm"> <td>C</td> <td>D</td> <td><a href="#frag2">name2</a></td> </tr> <tr class="bold"> <td>E</td> <td>F</td> <td><a href="#frag3">name3</a></td> </tr> <tr class="norm"> <td>G</td> <td>H</td> <td><a href="#frag4">name4</a></td> </tr> <tr class="bold"> <td>I</td> <td>J</td> <td><a href="#frag5">name5</a></td> </tr> </table>
Re^2: How to add hyperlink for every table data using perl?
by finddata (Sexton) on Mar 09, 2017 at 10:01 UTC
    check my question now
      Have you updated your question without showing the change? Please read How do I change/delete my post?.

      ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,