`
jedy
  • 浏览: 147861 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

如何将Perl代码着色

阅读更多
 
先决条件
CPAN Syntax::Highlight::Perl
代码解释
perldoc Syntax::Highlight::Perl
perldoc里或许解释清楚了,但是蛮长了,我没耐心看。使用里面的代码一点反应都没有。
use Syntax::Highlight::Perl;

my $formatter = new Syntax::Highlight::Perl;
print $formatter->format_string($my_string);
不想仔细看完全文,最主要是我懒,看英文头痛得很。
还好可以Search, 找到了Coloring perl code in HTML。
对着那代码,改写了些许颜色。将它span里改写成使用class而不是style.这样比较容易知道哪些词是属于哪一部分 。
完成后的代码如下。现炒现卖,直接将它着色。
打算迟些时候将它做为Eplanet的新功能。

highlightperl.css - 此CSS文档可随意更改。
.vs { color:#080; }
.va { color:#f70; }
.vh { color:#80f; }
.vt { color:#f03; }
.sub { color:#980; }
.qr { color:#ff8000; }
.str { color:#000; }
.cm { color:#008080;font-style:italic; }
.cmp { color:#014;font-family: garamond,serif;font-size:11pt; }
.bw { color:#3A3; }
.pk { color:#900; }
.nb { color:#f0f; }
.op { color:#000; }
.sym { color:#000; }
.kw { color:#00f; }
.bo { color:#f00; }
.bf { color:#001; }
.char { color:#800; }
.dr { color:#399;font-style:italic; }
.lb { color:#939;font-style:italic; }
.ln { color:#000; }
highlight.pl
#!/usr/bin/perl -T
use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser);
use CGI qw/:standard/;

my $cgi = new CGI;
print $cgi->header;

use Syntax::Highlight::Perl;

my $color_table = {
    'Variable_Scalar'   => 'vs',
    'Variable_Array'    => 'va',
    'Variable_Hash'     => 'vh',
    'Variable_Typeglob' => 'vt',
    'Subroutine'        => 'sub',
    'Quote'             => 'qr',
    'String'            => 'str',
    'Comment_Normal'    => 'cm',
    'Comment_POD'       => 'cmp',
    'Bareword'          => 'bw',
    'Package'           => 'pk',
    'Number'            => 'nb',
    'Operator'          => 'op',
    'Symbol'            => 'sym',
    'Keyword'           => 'kw',
    'Builtin_Operator'  => 'bo',
    'Builtin_Function'  => 'bf',
    'Character'         => 'char',
    'Directive'         => 'dr',
    'Label'             => 'lb',
    'Line'              => 'ln',
};

my $formatter = Syntax::Highlight::Perl->new();

$formatter->define_substitution('<' => '<',
                                '>' => '>',
                                '&' => '&'); # HTML escapes.

# install the formats set up above
while ( my ( $type, $class ) = each %{$color_table} ) {
        $formatter->set_format($type, [ qq~<span class=\"$class\">~, '</span>' ] );
}

print qq~<link rel="stylesheet" href="highlightperl.css" type="text/css" />~;
print '<pre>';
while (<DATA>) {
    print $formatter->format_string;
}
print "</pre>";

分享到:
评论

相关推荐

    ( net.sf.colorer_0.9.9(Eclipse代码着色插件).rar )

    《Eclipse代码着色插件net.sf.colorer_0.9.9详解》 在编程领域,代码编辑器是开发者日常工作中不可或缺的工具。Eclipse作为一款强大的集成开发环境(IDE),提供了丰富的功能来提升开发效率。然而,原始的Eclipse在...

    sublime text2 coffeescript perl SideBarEnhancements 等配置

    1. **Perl语法高亮**:同样,通过Package Control安装`Perl`或`Perl syntax`插件,以获得Perl源代码的正确语法着色。 2. **Perl Build System**:与CoffeeScript一样,创建一个Perl的构建系统,例如: ``` { "cmd...

    DzSoftPerlEditor.rar

    1. **语法高亮**:DzSoft Perl Editor支持对Perl代码进行语法着色,使代码更易读,有助于开发者快速识别和理解不同类型的语句。 2. **代码自动完成**:它提供了代码自动补全功能,根据输入的字符,编辑器可以预测并...

    JAVA上百实例源码以及开源项目源代码

    Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个...

    net.sf.colorer_0.9.0.zip_net.sf.colorer_高亮

    它的核心在于能够解析各种编程语言的语法特性,并根据这些特性为代码着色,使得代码在视觉上更易于理解。 在net.sf.colorer_0.9.0版本中,用户可以享受到超过200种语言的语法高亮支持。这涵盖了从常见的如Java、C++...

    Emedit编辑工具,一个比记事本功能更强的编辑工具

    其次,Emedit具有编程语言关键字着色功能。这意味着不同类型的代码元素(如变量、函数、关键字)会以不同的颜色显示,这极大地提高了代码的可读性。色彩编码使得在大量代码中快速定位特定元素成为可能,减少了出错的...

    sourceInsight源码

    - **语法高亮**:Source Insight可以对源代码进行语法着色,不同类型的语句、关键字、注释等采用不同的颜色显示,提高代码的可读性。 - **智能跳转**:通过点击变量、函数或类名,可以快速跳转到其定义处,方便...

    txt阅读器源代码

    代码阅读器软件支持 java/C#/C/C++/PERL/PYTHON/JAVASCRIPT语言,可以设置自动着色,程序员练手好工具。 历趣分享,给你在编译器上读代码的同样享受,喜欢就快下载吧! 历趣友情提示:此软件适用于android 1.5 及...

    OpenGL 作图例子 - 全屏幕

    在Windows环境下,批处理文件可以调用编译器(如GCC或Visual Studio的编译工具链)将源代码编译为可执行文件。这个批处理文件可能包含了构建`glfullscreen.exe`的命令,包括设置编译选项、链接OpenGL库等。 `...

    Colorer-schemes:着色器库的语法和配色方案

    要构建方案库,您将需要: 吉特 蚂蚁1.8或更高 Java开发套件8(jdk)或更高版本 Perl 从git仓库下载源代码: git clone https://github.com/colorer/Colorer-schemes.git 运行构建 build.cmd target 目标是值之...

    EditPlus 编辑工具

    - **代码高亮**:这些配置文件使得 EditPlus 能够识别不同语言的语法,为代码着色,提高可读性。 - **自动完成**:在编写代码时,EditPlus 可以提供代码补全功能,帮助程序员快速输入常见的函数或语句,提升编码...

    为Perl、Python和PHP构建Eclipse开发环境

    本教程显示如何通过EclipseDLTK为脚本语言构建开发工具,并且特别解释了如何在基于插件的项目中实现语法着色、用户首选项和解释器集成。这个教程分步解释了如何构建基于DLTK的开发环境。这个讨论通过关注基于Octave...

    SourceInsight

    1. **代码高亮和语法着色**: SourceInsight 3.5具备对多种编程语言的语法敏感的高亮显示,通过不同颜色区分关键字、变量、注释等,使得代码看起来更清晰,提高阅读效率。 2. **智能代码补全**: 在编写代码时,...

    Komodo IDE 7 授权文件

    2. **语法高亮**:对各种编程语言进行语法着色,使代码更易于阅读和理解。 3. **代码折叠**:允许用户隐藏和展开代码段,以便于管理大型项目。 4. **调试工具**:内置的调试器支持断点、单步执行、变量查看等功能,...

    EditPlus文本编辑器

    例如,`python.acp`、`java.acp`、`cpp.acp`和`perl.acp`是针对这些特定语言的配置文件,用于定义语法着色规则。 2. **代码折叠**:在处理大型代码文件时,EditPlus提供了代码折叠功能,用户可以隐藏部分代码段,使...

    EditPlus 绿色汉化版

    支持 HTML、CSS、PHP、ASP、Perl、C/C++、Java、JavaScript、VBScript 等多种语法的着色显示。程序内嵌网页浏览器,其它功能还包含 FTP 功能、HTML 编辑、URL 突显、自动完成、剪贴文本、行列选择、强大的搜索与替换...

    SciLexer_WinLib_ver3.7.0

    SciLexer的核心功能是语言解析和语法着色,它支持多种编程语言的语法,包括C++, Java, Python, Perl等,并且可以扩展以支持更多的语言。通过识别代码中的关键字、注释和字符串,SciLexer能够使代码更易读,提升...

Global site tag (gtag.js) - Google Analytics