cgi perl里如何改变某些字条符的颜色呀

cgi perl里如何改变某些字条符的颜色呀

-----------------------------------------------------------------------------------------------
|                          |                   |                  |                     |                            |      
|        DATE            |    OS TYPE  |  IP             |    COMMAND|     RESULTS          |
|________ _______| ____________________________________________ ___________|
|                          |                   |                  |                     |                             |
|                          |                   |                  |                     |       false                |
|                          |                   |                  |                     |                            |
| ______________ |_________________________________________________________  |
|                          |                   |                  |                     |                            |
|                          |                   |                  |                     |     true                 |
|                          |                   |                  |                     |                            |
-----------------------------------------------------------------------------------------------

我想把 RESULTS  列中所有显示是false的字符改成是红色怎么做呀

代码 vi cgi-pl

#!/usr/bin/perl


use strict;
use warnings;

use CGI qw/:standard/;
use HTML::Template;

use IO::File;

my $tmpl_file = '/var/www/cgi-bin/tmplate';  # Change it
my $data_file = '/var/www/cgi-bin/log/testlog';  # Change it

my $template = HTML::Template->new(filename => $tmpl_file);
my $file = IO::File->new($data_file);

my @log;
while ($_ = $file->getline) {
        my %t;
        @t{qw/date computer platform command result Detail/} = (split);
        push @log, \%t
}
$template->param(log => \@log);

print header, $template->output;
~


vi  tmple


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
  <meta http-equiv="Content-Type" content="text/html; charset=gbk">
  <TITLE> Log </TITLE>
</HEAD>
    <table align=center>
          <td><b>Hatteras CLI Automation Test Results</b> </td>
    </table>
<BODY>
  <table border="1" width="900" align=center bordercolor="#6595d6">
    <tr>
      <th align=center id=tabletitlelink height=25 width="20%" style="font-weight:normal"><b>Test Date</b></th>
      <th align=center id=tabletitlelink height=25 width="15%" style="font-weight:normal"><b>System Type</th>
      <th align=center id=tabletitlelink height=25 width="10%" style="font-weight:normal"><b>HostName</th>
      <th align=center id=tabletitlelink height=25 width="30%" style="font-weight:normal"><b>System Command</th>
      <th align=center id=tabletitlelink height=25 width="10%" style="font-weight:normal"><b>Results</th>
      <th align=center id=tabletitlelink height=25 width="15%" style="font-weight:normal"><b>Hatteras Version</th>
    <tr>
  <tmpl_loop name="log">
        <tr>
                <td align=center id=tabletitlelink height=25 style="font-weight:normal"><tmpl_var name=date></td>
                <td align=center id=tabletitlelink height=25 style="font-weight:normal"><tmpl_var name=computer></td>
                <td align=center id=tabletitlelink height=25 style="font-weight:normal"><tmpl_var name=platform></td>
                <td align=center id=tabletitlelink height=25 style="font-weight:normal"><tmpl_var name=command></td>
                <td align=center id=tabletitlelink height=25 style="font-weight:normal"><tmpl_var name=result></td>
                <td align=center id=tabletitlelink height=25 style="font-weight:normal"><tmpl_var name=Detail></td>
        </tr>
  </tmpl_loop>
  </table>
</BODY>
</HTML>



QUOTE:
原帖由 huanghaojie 于 2008-12-30 16:34 发表
-----------------------------------------------------------------------------------------------
|                          |                   |                  |                     |          ...

你是在哪里显示这个表格?


QUOTE:
原帖由 ynchnluiti 于 2008-12-30 16:36 发表

你是在哪里显示这个表格?

ynchnluiti (andy)

人呢? 呵呵


QUOTE:
原帖由 huanghaojie 于 2008-12-30 16:44 发表

ynchnluiti (andy)

人呢? 呵呵

你这个要根据true|false选择颜色。

简单的办法输出result内容时判断值.

[Copy to clipboard] [ - ]
CODE:
       @t{qw/date computer platform command result Detail/} = (split);
       if ($t{result} eq 'false') {
           $t{result} = '<font color="red">'.$t{result}.'</font>';
       }
       push @log, \%t



QUOTE:
原帖由 ynchnluiti 于 2008-12-30 17:06 发表

你这个要根据true|false选择颜色。

简单的办法输出result内容时判断值.

       @t{qw/date computer platform command result Detail/} = (split);
       if ($t{result} eq 'false') {
            ...

强的,高手一个!!

还有个小问题
IO::File - supply object methods for filehandles   这个到底怎么解释,对perl对新水,努力学习中



NAME

IO::File - supply object methods for filehandles

SYNOPSIS

    use IO::File;

    $fh = new IO::File;
    if ($fh->open("< file") {
        print <$fh>;
        $fh->close;
    }

    $fh = new IO::File "> file";
    if (defined $fh) {
        print $fh "bar\n";
        $fh->close;
    }

    $fh = new IO::File "file", "r";
    if (defined $fh) {
        print <$fh>;
        undef $fh;       # automatically closes the file
    }

    $fh = new IO::File "file", O_WRONLY|O_APPEND;
    if (defined $fh) {
        print $fh "corge\n";

        $pos = $fh->getpos;
        $fh->setpos($pos);

        undef $fh;       # automatically closes the file
    }

    autoflush STDOUT 1;

DESCRIPTION

IO::File inherits from IO::Handle and IO::Seekable. It extends these classes with methods that are specific to file handles.

CONSTRUCTOR

new ([ ARGS ] )

    Creates a IO::File. If it receives any parameters, they are passed to the method open; if the open fails, the object is destroyed. Otherwise, it is returned to the caller.

new_tmpfile

    Creates an IO::File opened for read/write on a newly created temporary file. On systems where this is possible, the temporary file is anonymous (i.e. it is unlinked after creation, but held open). If the temporary file cannot be created or opened, the IO::File object is destroyed. Otherwise, it is returned to the caller.

METHODS

open( FILENAME [,MODE [,PERMS]] )

    open accepts one, two or three parameters. With one parameter, it is just a front end for the built-in open function. With two parameters, the first parameter is a filename that may include whitespace or other special characters, and the second parameter is the open mode, optionally followed by a file permission value.

    If IO::File:pen receives a Perl mode string (``>'', ``+<'', etc.) or a POSIX fopen() mode string (``w'', ``r+'', etc.), it uses the basic Perl open operator.

    If IO::File:pen is given a numeric mode, it passes that mode and the optional permissions value to the Perl sysopen operator. For convenience, IO::File::import tries to import the O_XXX constants from the Fcntl module. If dynamic loading is not available, this may fail, but the rest of IO::File will still work.

SEE ALSO

the perlfunc manpage, I/O Operators, Handle Seekable

HISTORY

每二个问题是如果这个表是按date 的天来分页,怎么分


QUOTE:
原帖由 ynchnluiti 于 2008-12-30 17:06 发表

你这个要根据true|false选择颜色。

简单的办法输出result内容时判断值.

       @t{qw/date computer platform command result Detail/} = (split);
       if ($t{result} eq 'false') {
            ...

这在你的上面简单的改一下,为什么不行,我是把false 改成red ,把true改成绿色,

        @t{qw/date computer platform command result Detail/} = (split);
        if ($t{result} eq 'FALSE') {
        $t{result} = '<font color="red">'.$t{result}.'</font>';
        elsif ($t{result} eq 'TRUE') {
        $t{result} = '<font color="green">'.$t{result}.'</font>';

搞错了
        @t{qw/date computer platform command result Detail/} = (split);
       if ($t{result} eq 'FALSE') {
           $t{result} = '<font color="red">'.$t{result}.'</font>';
       }elsif ($t{result} eq 'TRUE') {
           $t{result} = '<font color="green">'.$t{result}.'</font>';
       }
这样好了



QUOTE:
原帖由 huanghaojie 于 2008-12-30 18:53 发表

强的,高手一个!!

还有个小问题
IO::File - supply object methods for filehandles   这个到底怎么解释,对perl对新水,努力学习中



NAME

IO::File - supply object methods for filehandles ...

没用过这个模块(类),简单看了下,好像是把文件句柄封装成对象了。(可以用new...)


QUOTE:
原帖由 huanghaojie 于 2008-12-30 19:24 发表
每二个问题是如果这个表是按date 的天来分页,怎么分

没用过HTML::Template。 你查查相关文档,看看有没有关于分页的吧


QUOTE:
原帖由 ynchnluiti 于 2008-12-31 00:33 发表

没用过HTML::Template。 你查查相关文档,看看有没有关于分页的吧

我的想法是这样的,在这个大的表的右上角加一个一行一列的小表,里面有天的时间,选一下天的时间,下面大表就会列出那天的内容,我身边有python的这样的下列子,可是不太懂python,