如何在Perl CGI程序中使用printf获得彩色输出?

时间:2016-08-25 09:29:08

标签: perl

我想为Perl CGI程序中需要打印的内容设置字体颜色和样式。

我们没有使用CPAN.txt文件来安装模块使用Term::ANSIColor和所有。

示例:

print "Hello world"; 

2 个答案:

答案 0 :(得分:2)

CGI相关答案 (当问题被修改为CGI时)

如果您想在网页上实现颜色,请通过CSS执行此操作。

在html标记中,您可以应用直接标记来设置字体样式,大小和颜色:

function func(num) {
    num = num + 1;
    var opt = document.getElementById('opt1');
    opt.innerHTML= num + "%" ;
    var move = setTimeout("func("+num+")",15);
    var nocolnum = document.getElementById('nocolnum');

    if(num == 100){
        nocolnum.innerHTML++;
        clearTimeout(move);
    }

    if (nocolnum == 5) {
        // I dont know what to put here
        // to break out
        // a break, return or something??
    }

    var one = 0;
    func(one);
}

建议将CSS与标记分开,改为使用CSS样式属性。

<span style="font-size: 1.5em; color: #555555; font-family: "Times New Roman", Times, serif;">Hello World</span>

通过这种方式,CSS 可以在HTML标记中的任何地方重复使用。

您还可以将所有CSS放入其自己的CSS文件中(例如... <head> <style> .hello { font-size: 1.5em; color: #555555; font-family: "Times New Roman", Times, serif; } <style> </head> <body> <div><span class="hello">Hello World</span></div> ... ):

my.css

然后在输出的HTML中.hello { font-size: 1.5em; color: #555555; font-family: "Times New Roman", Times, serif; }

<link>

在使用perl时,您最好使用templating来解决问题。将HTML放入模板文件中,通过... <head> <link rel="stylesheet" type="text/css" href="my.css"> </head> <body> <div><span class="hello">Hello World</span></div> ... HTML::Template等内容加载模板,填充所需的任何值,然后从该模板输出HTML页面。

这使您可以将“markup / html”与编程逻辑分开,避免内联文档的混乱,并使您将来的代码维护更容易。

如果您的输出具有“动态”颜色(可能在页面上更改的颜色),请将每个颜色定义为一个类,并使用模板设置要使用哪个类来提供所选样式。

原始问题解答 (当看起来输出到终端时)

Termcap可以提供颜色(取决于您环境中设置的Template::Toolkit)。

您可以通过TERM CPAN模块使用termcap:

Term::ScreenColor

我不推荐使用 use Term::ScreenColor; my $term = new Term::ScreenColor(); $term->green->puts('This is green')->reset(); ,因为它只发布原始ANSI颜色序列,并且无法识别您的术语环境。 (如果您在没有颜色的字词上使用Term::ANSIColor运行代码,则输出中会出现Term::ANSIColor类型序列。

注意:此模块依赖于[34;2m,而Term::Screen又需要Term::Cap

答案 1 :(得分:1)

根据更新的问题回答。 Drav已经向您展示了如何在终端中打印彩色输出。

要在浏览器中打印彩色信息,请使用CSS。编辑HTML /模板文件以包含相关的HTML标记和样式表。

如果您想提供CGI脚本中的样式数据,那么您可以执行以下操作

print h1({-style=>'Color: red;'},'Hello world');

另外:在提出这些基本问题之前,请先阅读CGI documentation

相关问题