会员登陆  支付方式  联系我们  在线客服  网站地图       
首页 关于域浪 互联网数据中心业务、主机托管、主机租用、机架租用、带宽租用、机房介绍、机房对比、CCN网络加速 adsl专线、深圳adsl专线 虚拟主机、域名注册、数据库、企业邮局、动态域名 网络安全、网络临近平台、安全服务、防火去墙租用、安全产品、域浪抗DDOS防火墙、NetScreen防火墙 技术支持  
   当前位置:首页 >> 技术支持 >> PERL编程技巧 >> 简单旧文档
 
精华文章
    函数 (O-Y)  
    函数 (E-N)  
    简单旧文档  
    可移植的 Perl  
    普通实践  
    安全  
    Perl 调试器  
    命令行接口  
    编译  
    线程  
    Unicode  
    Perl5的包和模块  
    Perl的面向对象编程  
    Perl5中的引用/指针  
    文件系统  
    格式化输出  
    关联数组/哈希表  
    子程序  
    控制结构  
    模式匹配  
    文件读写  
    列表和数组变量  
    操作符  
    简单变量  
    Perl是什么  
    深入研究表单提交方式...  
    GD.pm 图形模块安装指...  
    perl的进程管理简介  
  更多>>  
   PERL编程技巧
 简单旧文档
第二十六章,简单旧文档 

26.1 pod in a NutShell 

26.1.1. 字面段落 

26.1.2. pod 指示符 

26.1.3 Pod 序列 

! /usr/bin/perl -l00n 

olpod - outline pod 

! /usr/bin/perl -00 catpod - cat out just the pods 

! /usr/bin/perl -n00 

podlit - print the indented literal blocks from pod input 

! /usr/bin/perl 

catpod2, class and program 

设计 Perl 的一个原则是简单的事情应该简单,而难的事情应该有可能简单。文档应该简单。 



Perl 支持一种叫 pod 的简单文本标记格式,它可以独立存在或者自由地与你的源代码混合在一起形成嵌入的文档。Pod 可以转换成许多其他格式,用于查阅或者打印,或者你也可以直接阅读它,因为它很简单。 



Pod 不象 XML,LatEx,troff(1) 那样富于表现力,甚至连 HTML 都不如。这么做是故意的:我们为了简单和方便牺牲了表现力。有些文本标记语言让作者写的标记比文本还多,这样就把写作变得比原来还要复杂,而阅读则几乎是不可能的。一个好的格式应该象好的电影乐曲那样,隐藏在后台而不会让观众的注意力分散。 



让程序员写文档几乎和让他们打领带一样困难。Pod 的设计让写文档非常容易,甚至一个程序员都可以写——并且愿意写。我们可没有说 pod 胜任写一本书——尽管它足够写我们这本。 





26.1 pod in a NutShell? 

大多数文档格式要求整个文档都是用该格式写的。Pod 更宽容:你可以在任何文件里嵌入 pod,然后依靠 pod 翻译器抽取 pod。有些文件包含 100% 纯 pod。但是其他文件,尤其是 Perl 程序和模块,可能只包含若干团 pod,散布在作者认为合适的地方。当 Perl 分析该文件准备执行的时候,它只是简单地忽略 pod 文本。 



如果某一句话是用一个等于号和一个标识符开的头(象下面这样),而不是普通的一句程序,那么 Perl 的词法分析器就会知道忽略这一句话: 





   =head1 Here There Be Pods!

从这段文本开始,一直到一个以 =cut 开头的行为止,中间的所有文本(包括两端的行)都会被忽略。这样你就可以自由地把你的程序和文档混合在一起,比如: 





    =item snazzle



    The snazzle() function will behave in the most spectacular

    form that you can possibly imagine, not even excepting

    cybernetic pyrotechnics.



    =cut



    sub snazzle {

        my $arg = shift;

        ....

    }



    =item razzle



    The razzle() function enables autodidactic epistemology generation.



    =cut



    sub razzle {

        print "Epistemology generation unimplemented on this platform.\n";

    }

如果需要更多的例子,请参阅标准的或者 CPAN Perl 模块。除了极个别的以外,它们很可能都随身带着 pod, 



因为 Perl 词法器可以识别 pod 并且会把它抛弃,所以你还可以使用合适的 pod 指示符快速地注释掉大块的程序代码。使用 =for pod 块注释掉一个段落,或者一个 =begin/=end 对注释一个段落。我们稍后将介绍这些 pod 指示符。不过,请记住,在两种情况下,你仍然都是在 pod 模式下的,因此你需要 =cut 回到编译器。 





print "got 1\n";



=for commentary

This paragraph alone is ignored by anyone except the

mythical "commentary" translator.  When it's over, you're

still in pod mode, not program mode.

print "got 2\n";





=cut



# ok, real program again

print "got 3\n";



=begin comment 



print "got 4\n";



all of this stuff

here will be ignored

by everyone



print "got 5\n";



=end comment 



=cut



print "got 6\n";

这段代码将单引出得到 1,3,和 6。请注意这些 pod 指示符并不是哪里都能去。你必须把它们放到分析器预计会看到一行新语句的地方,而不是在一个表达式的中间或者其他任意的地方。 



从 Perl 的观点来看,所有 pod 标记都被抛弃,但是从 pod 翻译器的观点来看,抛弃的是代码。pod 翻译器把余下的文本当作一系列用空白行分隔的段落。所有现代的 pod 翻译器都用同样的方法分析 pod:使用标准的 Pod::Parser 模块。它们的区别只是输出,因为每种翻译器都专门生成一种输出格式。 



目前有三种段落:字面段落,命令段落,和散文段落。 





26.1.1. 字面段落 

字面段落用于那些你想表现为文本的文字,比如一小段代码。字面段落必须是缩进的,也就是说,它必须用空格或者水平制表符字符开头。翻译器会准确地重现它的格式——通常是用一种固定宽度的字体,并且假定水平制表符为八个空格宽。字面段落里面没有什么特殊的格式化逃逸,所以,你不能使用斜体或者宽体的字体。< 字符的意思就是文本 <,不是别的什么东西。 





26.1.2. pod 指示符 

所有 pod 指示符都是以 = 开头后面跟着一个标识符。它后面可以跟指示符愿意的任意数量的任意文本。唯一的语法要求就是这些文本必须都在同一个段落里。目前翻译器可以识别的指示符是(有时候我们把它们称做 pod 命令): 
  • 上一篇文章: 函数 (E-N)
  • 下一篇文章: 可移植的 Perl
  • 域浪网络ISP经营许可证 深圳地址:深圳市罗湖区宝安北路国际商品交易大厦七楼C30室
    Tel:0755-82266883/82267566 Fax:0755-82261966
    邮编:518000 
                        Copyright © 2006-2008 elang.cn All Rights Reserved 深圳市域浪网络技术有限公司版权所有