当前位置:早雪网网络学院编程文档Perl → perl常问问题集--第三篇

perl常问问题集--第三篇

减小字体 增大字体 作者:不详  来源:supcode.com收集整理  发布时间:2005-7-23 10:54:46

目录 
篇名 
概述 
我如何作 (任何事)? 
如何以互动的方式使用 Perl? 
有 Perl shell吗? 
如何替我的 Perl程式除虫? 
如何检测 (profile)我的 perl程式? 
如何替我的 Perl程式作交叉参考 (cross-reference)? 
有 Perl专用的美化列印程式 (pretty-printer)吗? 
有 Perl的 ctags吗? 
哪里有 vi用的 Perl巨集? 
给 emacs用的 perl模式又要去哪抓呢? 
如何在 Perl里使用 curses? 
X或 Tk如何与 Perl配合呢? 
如何不靠 CGI或 Tk之助作出简单的目录(选单)? 
我可以动态地将 C常式载入 Perl吗? 
什麽是 undump? 
如何让我的 Perl程式跑得更快些? 
如何让我的 Perl程式吃少一点的记忆体? 
把指标传回到区域资料是不安全的做法吗? 
我如何释放一个阵列或杂凑阵列以缩小我的程式尺寸? 
如何让我的 CGI脚本 (script)执行起来更有效率? 
如何隐藏 Perl程式的原始码? 
如何把我的 Perl程式码编译成 byte code或 C? 
如何才能让 '#!perl'在 [MS-DOS,NT,...]下作用? 
我能利用命令列写出有用的程式吗? 
为何一行的 perl程式无法在我的 DOS/Mac/VMS系统上运作? 
我得去哪里学 Perl的 CGI或是 Web程式设计呢? 
在哪可以学到用 Perl作物件导向程式设计? 
哪里可以学到将 C与 Perl相连结? [h2xs, xsubpp] 
我已经读了 perlembed, perlguts,等等,但我仍然无法将 perl嵌入我的 
当我试着执行我的程式时,我收到某项讯息。它代表什麽意思? 
什麽是 MakeMaker? 
作者与版权事宜 

--------------------------------------------------------------------------------

篇名 
perlfaq3 -程式设计工具(原文版 Revision: 1.22, Date: 1997/04/24 22:43:42. 中译版 $Revision: 1.4 $, $Date: 1997/07/12 20:03:10 $) 


--------------------------------------------------------------------------------

概述 
这个部份回答了有关程式设计师的工具与程式设计方面的协助等相关问题。 


--------------------------------------------------------------------------------

我如何作 (任何事)? 
你到 CPAN(见 perlfaq2)找过了吗?也许别人已经写了某个模组可以解决你的 问题。你查过相关的说明文件了吗 (man pages)?以下是一份概要的索引: 

物件 (Objects)                  perlref, perlmod, perlobj, perltie
资料结构 (Data Structures)      perlref, perllol, perldsc
模组 (Modules)                  perlmod, perlmodlib, perlsub
正规表示法 (Regexps)            perlre, perlfunc, perlop
升级至 Perl5 (Moving to perl5)  perltrap, perl
与 C连结 (Linking w/C)         perlxstut, perlxs, perlcall, perlguts, perlembed
杂项 (Various)                  http://www.perl.com/CPAN/doc/FMTEYEWTK/index.html
                                        (不是说明文件,但还是很有用)

perltoc里有一份粗略的 perl 说明文件组的目录。 


--------------------------------------------------------------------------------

如何以互动的方式使用 Perl? 
典型的作法是使用 perldebug(1)说明文件里提到的 Perl 除虫器,在一个「空的」(译者:即不存在的)程式上执行,像这样: 

    perl -de 42

接下来所打入的任意合法 Perl程式码皆会立刻被评估。同时,你可以检查符号表 (symbol table)、取得堆叠的记录 (stack backtraces)、检视变数值、设定阻断点 (set breakpoints) 以及其他符号式除虫器 (symbolic debuggers) 所能作的动作。 


--------------------------------------------------------------------------------

有 Perl shell吗? 
基本上来说,没有。Shell.pm模组 (是 perl 标准套件之一)只是叫 perl 将非 Perl语言的命令当作 shell的命令来试着执行看看罢了。perl原始码套件中的 perlsh,功能简易,也很无趣,不过仍可能是你所要的。 


--------------------------------------------------------------------------------

如何替我的 Perl程式除虫? 
你用过 -w吗? 

你试过 use strict吗? 

你是否检查过每个系统呼叫 (system call)所传回的值? 

读了 perltrap说明文件吗? 

你试过 perldebug里所提到的 Perl除虫器吗? 


--------------------------------------------------------------------------------

如何检测 (profile)我的 perl程式? 
你该自 CPAN抓取 Devel::DProf 模组,并且使用 perl 标准套件所附的 Benchmark.pm。 Benchmark.pm让你测量程式码的某部份在执行上所花的时间,而 Devel::DProf则详细地替你分析哪一部份的程式用掉多少时间。 


--------------------------------------------------------------------------------

如何替我的 Perl程式作交叉参考 (cross-reference)? 
随着新发行的 alpha版 Perl编译器(它不在一般标准套件里)而来的 B::Xref模组可 以替你的 Perl程式制作 cross-reference报告。用法是: 

    perl -MO=Xref[,OPTIONS] foo.pl


--------------------------------------------------------------------------------

有 Perl专用的美化列印程式 (pretty-printer)吗? 
C有 indent(1)可以将原始码格式美化,但 Perl并没有能做得像它那麽好的东西。扫瞄器 (scanner) 和分析器 (parser) 间复杂的反馈 (feedback)(把 vgrind 和 emacs等程式搞混的就是这反馈)使得撰写一个独立的 Perl 分析器成了一项艰巨的挑战。 

当然,若你直接照 perlstyle里面的指示写程式,就根本没有必要重新安排格式。 

你所用的编辑器可以并也应能帮你把原始码的格式弄漂亮些。像 emacs的 perl-mode就能帮你把大部分 (但非全部)的程式码排列得漂亮些,而其它普通的编辑器也能提供一定程度的协助。 

如果你试着使用 vgrind程式从雷射印表机印出漂亮的原始码,可以参考: http://www.perl.com/CPAN/doc/misc/tips/working.vgrind.entry ,但是碰到复杂的程式码可能就不能全然令人满意了。 


--------------------------------------------------------------------------------

有 Perl的 ctags吗? 
有个简单的在 http://www.perl.com/CPAN/authors/id/TOMC/scripts/ptags.gz 也许符合你的需要。 


--------------------------------------------------------------------------------

哪里有 vi用的 Perl巨集? 
在 ftp://ftp.perl.com/pub/vi/toms.exrc有完整的 Tom Christiansen之 vi设定档, 它是给 vi模拟器用的标准测试档 (standard benchmark file)。它与 nvi配合得最好,巧的是,这个出自 Berkeley的编辑器也可以内嵌一个 Perl直译器 --参看 http://www.perl.com/CPAN/src/misc。 


--------------------------------------------------------------------------------

给 emacs用的 pe

[1] [2] [3] [4]  下一页


Tags:perl,常问,问题,第三
[数据载入中...] [返回上一页] [打 印]