Provided by:
manpages-zh_1.5-1_all 
NAME
perlfaq1 - 有關 Perl 的一般問題 (2003/11/23 08:02:29)
DESCRIPTIONyz
有關 Perl 的一般的,非技術層次的問題
What is Perl?O Perl
Perl是一荌甽扔{式語言,由 Larry
Wall和其他許多人所寫,融合了許多語言的特性。它主n是由無所不在的
C語言,其次由 sed、awk,UNIX shell
和至少十數種其他的工具和語言所演化而來。Perl對
process、檔案,和文字有很強的處理、變換能力,因此舉凡有關快速鴢炯]-
p、系統工具、軟體工具、系統管理、資料庫連結、圖像程式設p、網路連結,和
WWW程式設p等之類的任務,都特別 適合用 Perl來做。這些特長不但使
Perl成為系統維護管理者和
CGI作者的寵兒,就連數學家、遺傳學家、新聞從業者,甚至企業管理者也都用
Perl,所以或許您也該用。
PerlH}oFHOH
Perl自由開放的發行方式n歸功於發燒前的 Internet的傳統文化及其作者 Larry
Wall。Perl是由使用者提供支援。現在
Perl的核心、標準程式庫、選擇性安裝的模組,以及您現在正在閱讀的使用說明都出自於義務者之手。詳情請見
perl鴝l碼發行版中所附的 README檔案底部的私人注記。
o一提的是,核心發展小組(稱為 Perl Porters)的成-
是一群高度熱情奉獻的人仕,全心投入發展出比您所能想像、用錢能買得到還-
n更好的免費軟體。您可經由
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/ 和
http://archive.develooper.com/perl5-porters@perl.org/ 或者新聞伺服器
nntp://nntp.perl.org/perl.perl5.porters 或它的 web 界
http://nntp.perl.org/group/perl.perl5.porters , 也可以q閱郵件列表
perl5-porters-request@perl.org (沒有主題的空消息也是可以的)
取得關於新近發展p畫 的信息。
儘管 GNUp畫將 Perl囊括在它的發行中,但是沒有叫「GNU Perl」這樣的東西。
Perl既非自由軟體基金會所創,亦非由其t責維護。Perl的發行條款同時也較
GNU軟體更來得開放。
如果您願意,您可以購買商業性的
Perl支援。但對大多數使用者來說,非正式性的支援通常已相當足夠。詳情請見「到-
裏可買到商業性的 Perl支援」一問的回 答。
Which version of Perl should I use?@ Perlperl4M perl5UNH
perl4 和 perl5 是對 Perl程式語言的兩-
茪ㄕP版本的非正式稱呼,因為說「perl5」n比說「第 5(.004)版的 Perl」-
n來得簡單。但是有些人誤將其會意為:perl5是一-
茬瞈W的語言;這是不正確的。perl5只不過是對第太主n發行版本(1994年 10
月)常用的稱呼罷了。就像 perl4是指第四茈Dn發行(1991年 3 月),還有
perl1(1988年 1月)、perl2(1988年 6 月),以及 perl3(1989年 10 月)。
5.0的發行基本上是從零開始,所有程式碼完全-
奐s寫過的版本。它已經被模組化、物件導向化、微調、精簡化,及效率化,以-
P程式碼幾乎已變得和鴩茠漱ㄛ萓P了。儘管如此,使用介惜j-
P上仍然相同,而且和先前的版本之間保持了很高的 一P性。參見 perltrap 中的
"Perl4 to Perl5 Traps" .
為了避免「perl5是什麼語言?」這類的混淆,有些人索性完全避免「perl5」,而單用「perl」來指稱最近的
perl版本。其實用不著這麼累就是了。
參見 perlhist 中 Perl 版本的歷史
What is Ponie?O Ponie
At The O'Reilly Open Source Software Convention in 2003, Artur Bergman,
Fotango, and The Perl Foundation announced a project to run perl5 on
the Parrot virtual machine named Ponie. Ponie stands for Perl On New
Internal Engine. The Perl 5.10 language implementation will be used
for Ponie, and there will be no language level differences between
perl5 and ponie. Ponie is not a complete rewrite of perl5.
For more details, see http://www.poniecode.org/
What is perl6?
At The Second O'Reilly Open Source Software Convention, Larry Wall
announced Perl6 development would begin in earnest. Perl6 was an oft
used term for Chip Salzenberg's project to rewrite Perl in C++ named
Topaz. However, Topaz provided valuable insights to the next version of
Perl and its implementation, but was ultimately abandoned.
If you want to learn more about Perl6, or have a desire to help in the
crusade to make Perl a better place then peruse the Perl6 developers
page at http://dev.perl.org/perl6/ and get involved.
Perl6 is not scheduled for release yet, and Perl5 will still be
supported for quite awhile after its release. Do not wait for Perl6 to
do whatever you need to do.
"We're really serious about reinventing everything that needs
reinventing." --Larry Wall
PerlPerlHow does Perl compare with other languages like Java, Python, REXX,
Scheme, or Tcl?
Perl在某些地方比較好,某些地方較差。精確地說到底些方惘n或壞通常視-
茪H偏好而定,所以在新聞討論群中問這種問題很可能會掀起一場毫無建設性的聖戰。
n比較各語言的異同最好的方法是試著用不同的語言寫功能相同的程式。各程式語言都各有屬於它-
怞U自的新聞討論群,您可從中學習(但希望您不是去和人辨論吵 架的)。
如果還是不聽勸告的話,可以去看 http://language.perl.com/versus/
的語言比較
iH PerlPerlperlPerlPerlprogramscript.cshrc 或 .ircrc。對話稿本僅僅是驅動已有的程式,並不是獨立的程式。
電腦專家會解釋說,所有程式都是解釋執行的,但是問題是從-
蚍h次去考慮。如果你問一茪ㄛO電腦專家的人,他怚i能告訴你,一 program
是已被編譯為機器碼,一次編譯多次運行的東西,而一 script
在每次使用時都必須漸翻譯為 program
Perl 程式通常不是嚴格的編譯或解釋執行的。它怚i以被編譯為字節碼形式
(可以在 Perl 虛擬機中運行) 或者完全不同的其他語言,例如 C
或匯編。你不能僅僅從源程式推斷它是否應當被一荅繡挭擰飽A一-
茪尷R樹解釋器,一茼r節碼解釋器或者一-
茈誚a代碼編譯器來運行,因此在這裏很難給出一蚑T定的答案
現在 script 和 scripting 已成為被不慎-
囿漱H和無知的商人為了自己惡毒的目的而用到的兩茧,它-
抾}始擁有奇怪的,貶義的含義,類似 "不嚴謹 non serious" 或
"不是真正的編程". 因此,一些 Perl 程式選擇不把它怞P時比較。
JAPHOH
這是過去一些在討論群中自稱 ``just another perl hacker''
的人的簽名檔,Randal Schwartz 開了這樣的先河。約有一百茪騆-
期的版本,可在 http://www.cpan.org/misc/japh 獲得。
i Larry Wallzy (witticisms)http://www.cpan.org/misc/lwall-quotes.txt.gz 獲得
npHBAtzWqU 5/5.8.3的
Perlhttp://www.perl.org/advocacy/
如果您措鴾牊 perl升級的聲窗A那麼告訴他
Perl發展小組已經完全不再維護或支援第四版的 perl了。perl5的另一-
茪j賣點是它有大量的模組和延伸,可大大減少p畫的發展時間。還有,告訴他-
戽艦|和第云 Perl之間的差異就如 awk 和
C++的差別一樣(嗯,或許沒有差得那麼明顯,但您知道我的意思就好)。如果您想得到支援而且想確保您現在所發展的軟體在未來能繼續工作的話,那麼您得跑有支援的版本。在
2003 年 12 月,這大概也就是說n跑 5.8.2
版的,或者稍微舊一些的版本如5.6.2 (November 2003 發佈; 一衿正發行,使得
perl 5.6 在新系統中可以編譯,因為 5.6.1發行戌b April 2001) 或 5.005_03
(March 1999 發行), 如果你一定n一蚋穠岩豪茷O持相容性,使用 5.004_05
也不壞。比 5.004_05 更舊的版本堅決不能再用
Of particular note is the massive bug hunt for buffer overflow problems
that went into the 5.004 release. All releases prior to that,
including perl4, are considered insecure and should be upgraded as soon
as possible.
In August 2000 in all Linux distributions a new security problem was
found in the optional 'suidperl' (not built or installed by default) in
all the Perl branches 5.6, 5.005, and 5.004, see
http://www.cpan.org/src/5.0/sperl-2000-08-05/ Perl maintenance releases
5.6.1 and 5.8.0 have this security hole closed. Most, if not all,
Linux distribution have patches for this vulnerability available, see
http://www.linuxsecurity.com/advisories/ , but the most recommendable
way is to upgrade to at least Perl 5.6.1.
AUTHOR AND COPYRIGHT
Copyright (c) 1997, 1998, 1999, 2000, 2001 Tom Christiansen and Nathan
Torkington. All rights reserved.
This documentation is free; you can redistribute it and/or modify it
under the same terms as Perl itself.
Irrespective of its distribution, all code examples here are in the
public domain. You are permitted and encouraged to use this code and
any derivatives thereof in your own programs for fun or for profit as
you see fit. A simple comment in the code giving credit to the FAQ
would be courteous but is not required.
者
Auu@室