如何使用perl在html页面中加粗行?

时间:2017-02-23 16:11:34

标签: perl

我尝试将没有序列号的行突出显示为粗体。我使用以下代码使用perl将行转换为粗体。

我的代码:

#!/usr/local/bin/perl

use strict;
use warnings;

open my $HTML, '>', 'result.html' or die $!;

print $HTML <<'_END_HEADER_';
<html>
<head><title>welcome</title></head>
<body>
<table border=10>
<th>SL.NO</th><th>CHECKLIST ITEM</th><th>VALUE</th><th>COMMENTS</th><th>CONFIRMATION</th>
_END_HEADER_

open my $IN, '<', 'result.txt' or die $!;

while ( my $line = <$IN> ) {
    chomp $line;
    #$line=~ s/COMMENT//g;
    $line =~ s/[\\\_\@\_]//g;
    $line =~ s/COMMENT//g;
    # print $line;
    print $HTML '<tr><td>' . join( '</td><td>', split( /:/, $line ) ) . "</td></tr>\n";
}

close $IN or die $!;

print $HTML <<'_END_FOOTER_';
</table>
</body>
</html>
_END_FOOTER_

close $HTML or die $!;

的Result.txt

CREATED_BY=ME
1:Is Synopsys RM flow used?:Yes:INCORRECT:To Be Done
COMMENT:Full Planned_\@_
2:Any Blockages Used?:Yes:INCORRECT:To Be Done
COMMENT:CTS_\@_

输出生成:(即result.html)

SL.NO   CHECKLIST_ITEM  VALUE   COMMENTS    CONFIRMATION
CREATEDBY=ME                
1   Is flow is used?    YES     INCORRECT   To Be Done
    Full Planned            
2   Any Blockages Used? Yes INCORRECT   To Be Done
    CTS         

预期产出:

CREATEDBY=ME

SL.NO   CHECKLIST_ITEM  VALUE   COMMENTS    CONFIRMATION
1   Is flow is used?    YES     INCORRECT   To Be Done
    Full Planned            
2   Any Blockages Used? Yes INCORRECT   To Be Done
    CTS         

在这里,我想强调要突出显示的非序列号行(即完整计划和CTS)。

1 个答案:

答案 0 :(得分:2)

在HTML中加粗文字的最佳方法是使用Cascading Style Sheets。您应该更改代码以在需要加粗的size元素中插入一个类。而不是:

<tr>

我会建议这样的事情:

print $HTML '<tr><td>' . join('</td><td>', split(/:/,$line)) . "</td></tr>\n";

然后是一个包含如下规则的CSS文件:

my @data = split /:/, $line;
my $class = $data[0] ? 'bold' : 'normal';
print $HTML qq[<tr class="$class"><td>] . join('</td><td>', @data) . "</td></tr>\n";