perl - Perl 5 語言解釋器
perl [ -sTtuUWX ] [ -hv ] [ -V[:configvar] ] [ -cw ] [ -d[t][:debugger] ] [ -D[number/list] ] [ -pna ] [ -Fpattern ] [ -l[octal] ] [ -0[octal/hexadecimal] ] [ -Idir ] [ -m[-]module ] [ -M[-]'module...' ] [ -f ] [ -C [number/list] ] [ -S ] [ -x[dir] ] [ -i[extension] ] [ [-e|-E] 'command' ] [ -- ] [ programfile ] [ argument ]...
欲獲取更多有關這些選項的資訊,請執行 perldoc perlrun
。
perldoc 程式讓您可以存取所有隨 Perl 附帶的文件。您可以在線上獲取更多文件、教程和社區支援,網址為 https://www.perl.org/。
如果您是 Perl 的新手,建議您先執行 perldoc perlintro
,這是一個針對初學者的簡介,並提供一些背景資料,以協助您瀏覽 Perl 廣泛的文件。執行 perldoc perldoc
以瞭解您可以使用 perldoc 做些什麼。
為方便存取,Perl 手冊已分成幾個部分。
perl Perl overview (this section)
perlintro Perl introduction for beginners
perlrun Perl execution and options
perltoc Perl documentation table of contents
perlreftut Perl references short introduction
perldsc Perl data structures intro
perllol Perl data structures: arrays of arrays
perlrequick Perl regular expressions quick start
perlretut Perl regular expressions tutorial
perlootut Perl OO tutorial for beginners
perlperf Perl Performance and Optimization Techniques
perlstyle Perl style guide
perlcheat Perl cheat sheet
perltrap Perl traps for the unwary
perldebtut Perl debugging tutorial
perlfaq Perl frequently asked questions
perlfaq1 General Questions About Perl
perlfaq2 Obtaining and Learning about Perl
perlfaq3 Programming Tools
perlfaq4 Data Manipulation
perlfaq5 Files and Formats
perlfaq6 Regexes
perlfaq7 Perl Language Issues
perlfaq8 System Interaction
perlfaq9 Networking
perlsyn Perl syntax
perldata Perl data structures
perlop Perl operators and precedence
perlsub Perl subroutines
perlfunc Perl built-in functions
perlopentut Perl open() tutorial
perlpacktut Perl pack() and unpack() tutorial
perlpod Perl plain old documentation
perlpodspec Perl plain old documentation format specification
perldocstyle Perl style guide for core docs
perlpodstyle Perl POD style guide
perldiag Perl diagnostic messages
perldeprecation Perl deprecations
perllexwarn Perl warnings and their control
perldebug Perl debugging
perlvar Perl predefined variables
perlre Perl regular expressions, the rest of the story
perlrebackslash Perl regular expression backslash sequences
perlrecharclass Perl regular expression character classes
perlreref Perl regular expressions quick reference
perlref Perl references, the rest of the story
perlform Perl formats
perlobj Perl objects
perltie Perl objects hidden behind simple variables
perlclass Perl class syntax
perldbmfilter Perl DBM filters
perlipc Perl interprocess communication
perlfork Perl fork() information
perlnumber Perl number semantics
perlthrtut Perl threads tutorial
perlport Perl portability guide
perllocale Perl locale support
perluniintro Perl Unicode introduction
perlunicode Perl Unicode support
perlunicook Perl Unicode cookbook
perlunifaq Perl Unicode FAQ
perluniprops Index of Unicode properties in Perl
perlunitut Perl Unicode tutorial
perlebcdic Considerations for running Perl on EBCDIC platforms
perlsec Perl security
perlsecpolicy Perl security report handling policy
perlmod Perl modules: how they work
perlmodlib Perl modules: how to write and use
perlmodstyle Perl modules: how to write modules with style
perlmodinstall Perl modules: how to install from CPAN
perlnewmod Perl modules: preparing a new module for distribution
perlpragma Perl modules: writing a user pragma
perlutil utilities packaged with the Perl distribution
perlfilter Perl source filters
perldtrace Perl's support for DTrace
perlglossary Perl Glossary
perlembed Perl ways to embed perl in your C or C++ application
perldebguts Perl debugging guts and tips
perlxstut Perl XS tutorial
perlxs Perl XS application programming interface
perlxstypemap Perl XS C/Perl type conversion tools
perlclib Internal replacements for standard C library functions
perlguts Perl internal functions for those doing extensions
perlcall Perl calling conventions from C
perlmroapi Perl method resolution plugin interface
perlreapi Perl regular expression plugin interface
perlreguts Perl regular expression engine internals
perlclassguts Internals of class syntax
perlapi Perl API listing (autogenerated)
perlintern Perl internal functions (autogenerated)
perliol C API for Perl's implementation of IO in Layers
perlapio Perl internal IO abstraction interface
perlhack Perl hackers guide
perlsource Guide to the Perl source tree
perlinterp Overview of the Perl interpreter source and how it works
perlhacktut Walk through the creation of a simple C code patch
perlhacktips Tips for Perl core C code hacking
perlpolicy Perl development policies
perlgov Perl Rules of Governance
perlgit Using git with the Perl repository
perlhist Perl history records
perldelta Perl changes since previous version
perl5381delta Perl changes in version 5.38.1
perl5380delta Perl changes in version 5.38.0
perl5363delta Perl changes in version 5.36.3
perl5362delta Perl changes in version 5.36.2
perl5361delta Perl changes in version 5.36.1
perl5360delta Perl changes in version 5.36.0
perl5343delta Perl changes in version 5.34.3
perl5342delta Perl changes in version 5.34.2
perl5341delta Perl changes in version 5.34.1
perl5340delta Perl changes in version 5.34.0
perl5321delta Perl changes in version 5.32.1
perl5320delta Perl changes in version 5.32.0
perl5303delta Perl changes in version 5.30.3
perl5302delta Perl changes in version 5.30.2
perl5301delta Perl changes in version 5.30.1
perl5300delta Perl changes in version 5.30.0
perl5283delta Perl changes in version 5.28.3
perl5282delta Perl changes in version 5.28.2
perl5281delta Perl changes in version 5.28.1
perl5280delta Perl changes in version 5.28.0
perl5263delta Perl changes in version 5.26.3
perl5262delta Perl changes in version 5.26.2
perl5261delta Perl changes in version 5.26.1
perl5260delta Perl changes in version 5.26.0
perl5244delta Perl changes in version 5.24.4
perl5243delta Perl changes in version 5.24.3
perl5242delta Perl changes in version 5.24.2
perl5241delta Perl changes in version 5.24.1
perl5240delta Perl changes in version 5.24.0
perl5224delta Perl changes in version 5.22.4
perl5223delta Perl changes in version 5.22.3
perl5222delta Perl changes in version 5.22.2
perl5221delta Perl changes in version 5.22.1
perl5220delta Perl changes in version 5.22.0
perl5203delta Perl changes in version 5.20.3
perl5202delta Perl changes in version 5.20.2
perl5201delta Perl changes in version 5.20.1
perl5200delta Perl changes in version 5.20.0
perl5184delta Perl changes in version 5.18.4
perl5182delta Perl changes in version 5.18.2
perl5181delta Perl changes in version 5.18.1
perl5180delta Perl changes in version 5.18.0
perl5163delta Perl changes in version 5.16.3
perl5162delta Perl changes in version 5.16.2
perl5161delta Perl changes in version 5.16.1
perl5160delta Perl changes in version 5.16.0
perl5144delta Perl changes in version 5.14.4
perl5143delta Perl changes in version 5.14.3
perl5142delta Perl changes in version 5.14.2
perl5141delta Perl changes in version 5.14.1
perl5140delta Perl changes in version 5.14.0
perl5125delta Perl changes in version 5.12.5
perl5124delta Perl changes in version 5.12.4
perl5123delta Perl changes in version 5.12.3
perl5122delta Perl changes in version 5.12.2
perl5121delta Perl changes in version 5.12.1
perl5120delta Perl changes in version 5.12.0
perl5101delta Perl changes in version 5.10.1
perl5100delta Perl changes in version 5.10.0
perl589delta Perl changes in version 5.8.9
perl588delta Perl changes in version 5.8.8
perl587delta Perl changes in version 5.8.7
perl586delta Perl changes in version 5.8.6
perl585delta Perl changes in version 5.8.5
perl584delta Perl changes in version 5.8.4
perl583delta Perl changes in version 5.8.3
perl582delta Perl changes in version 5.8.2
perl581delta Perl changes in version 5.8.1
perl58delta Perl changes in version 5.8.0
perl561delta Perl changes in version 5.6.1
perl56delta Perl changes in version 5.6
perl5005delta Perl changes in version 5.005
perl5004delta Perl changes in version 5.004
perlbook Perl book information
perlcommunity Perl community information
perldoc Look up Perl documentation in Pod format
perlexperiment A listing of experimental features in Perl
perlartistic Perl Artistic License
perlgpl GNU General Public License
perlcn Perl for Simplified Chinese (in UTF-8)
perljp Perl for Japanese (in EUC-JP)
perlko Perl for Korean (in EUC-KR)
perltw Perl for Traditional Chinese (in Big5)
perlaix Perl notes for AIX
perlamiga Perl notes for AmigaOS
perlandroid Perl notes for Android
perlbs2000 Perl notes for POSIX-BC BS2000
perlcygwin Perl notes for Cygwin
perlfreebsd Perl notes for FreeBSD
perlhaiku Perl notes for Haiku
perlhpux Perl notes for HP-UX
perlhurd Perl notes for Hurd
perlirix Perl notes for Irix
perllinux Perl notes for Linux
perlmacosx Perl notes for Mac OS X
perlopenbsd Perl notes for OpenBSD
perlos2 Perl notes for OS/2
perlos390 Perl notes for OS/390
perlos400 Perl notes for OS/400
perlplan9 Perl notes for Plan 9
perlqnx Perl notes for QNX
perlriscos Perl notes for RISC OS
perlsolaris Perl notes for Solaris
perlsynology Perl notes for Synology
perltru64 Perl notes for Tru64
perlvms Perl notes for VMS
perlvos Perl notes for Stratus VOS
perlwin32 Perl notes for Windows
perlboot
perlbot
perlrepository
perltodo
perltooc
perltoot
在類 Unix 系統上,這些文件通常也可以作為 man 頁面使用,可與 man 程式一同使用。
有些文件並非作為 man 頁面提供,因此如果 man 無法找到交叉引用,請嘗試使用 perldoc。Perldoc 也可以直接將您帶到函數的文件(使用 -f 選項)。查看 perldoc --help
(或 perldoc perldoc
或 man perldoc
)以獲取 perldoc 的其他有用選項。
通常,如果您的程式出現了奇怪的問題,並且您不確定應該在哪裡尋求幫助,請嘗試使您的程式遵循 use strict 和 use warnings。這些通常會準確指出問題所在。
Perl 正式代表實用擷取及報告語言,除非不是。
Perl 最初是一種針對掃描任意文本文件、從這些文本文件中提取信息並基於該信息打印報告的語言。它很快成為許多系統管理任務的良好語言。多年來,Perl 已發展成為一種通用編程語言。它被廣泛用於從快速的「一行命令」到完整應用程序開發的各種任務中。
該語言旨在實用(易於使用、高效、完整),而不是美麗(微小、優雅、最小化)。它結合了(無論如何在作者看來)sed、awk 和 sh 的一些最佳特性,使其對於 Unix 用戶來說熟悉且易於使用,可以迅速解決煩人的問題。其通用編程設施支持程序、函數和面向對象的編程範式,使 Perl 成為長期專案中舒適的語言,無論你的傾向如何。
Perl 在文本處理方面的根源多年來一直未被遺忘。它仍然擁有一些最強大的正則表達式,在世界各地都有支持 Unicode 文本的水準。它還通過一個廣泛的擴展集合處理各種結構化文本。那些在 CPAN 中收集的庫提供了對驚人範圍的問題的現成解決方案。當它們沒有自己設定標準時,它們就會從最佳解決方案中吸取,就像 Perl 本身一樣。
Perl 適用於大多數操作系統,包括幾乎所有類 Unix 平台。請參閱"perlport 中支持的平台"中的列表。
請參閱"perlrun 中的環境"。
Larry Wall <larry@wall.org>,在眾多其他人的幫助下。
如果您的 Perl 成功案例和推薦信對於其他希望在其應用程序中倡導使用 Perl 的人有所幫助,或者如果您希望向 Larry 和 Perl 開發人員表達感謝,請寫信至 perl-thanks@perl.org 。
"@INC" locations of perl libraries
上面的「@INC」是對同名內置變量的引用;有關詳細信息,請參閱perlvar。
https://www.perl.org/ the Perl homepage
https://www.perl.com/ Perl articles
https://www.cpan.org/ the Comprehensive Perl Archive
https://www.pm.org/ the Perl Mongers
使用use strict
命令確保所有變數都被正確聲明,並防止對遺留 Perl 功能的其他誤用。在use v5.12
(或更高版本)範圍內,這些功能預設啟用。
use warnings
命令生成一些可愛的診斷信息。當您說use v5.35
(或更高版本)時,它預設啟用。也可以使用-w標誌,但通常不建議使用,因為它會應用於所有執行的 Perl 代碼,包括不在您控制範圍內的代碼。
請參見perldiag以了解所有 Perl 診斷的解釋。使用use diagnostics
命令會自動將 Perl 的通常簡潔的警告和錯誤轉換為更長的形式。
編譯錯誤會告訴您錯誤的行號,並指示下一個將要檢查的標記或標記類型。(在通過-e開關傳遞給 Perl 的腳本中,每個-e都被計為一行。)
設置 Setuid 腳本會產生額外的約束條件,可能會產生像「不安全依賴性」之類的錯誤消息。請參見perlsec。
我們是否提到您絕對應該考慮使用use warnings 命令?
由use warnings 命令隱含的行為並非強制性的。
Perl 受制於您的計算機對各種操作的定義,例如類型轉換、atof() 和使用 sprintf() 輸出浮點數。
如果您的 stdio 在特定流上要求在讀寫之間進行 seek 或 eof,Perl 也需要這樣做。(這不適用於 sysread() 和 syswrite()。)
雖然內置數據類型都沒有任何任意的大小限制(除了內存大小),但仍然存在一些任意限制:給定變量名稱的長度不得超過 251 個字符。診斷顯示的行號內部存儲為短整數,因此最大限制為 65535(通常受到循環影響的更高數字)。
您可以將錯誤報告提交到https://github.com/Perl/perl5/issues(請確保包括由 Perl 源代碼樹中的 myconfig 程序輸出的完整配置信息,或者使用perl -V
命令輸出的信息)。
Perl 實際上代表 Pathologically Eclectic Rubbish Lister,但請不要告訴任何人我說的話。
Perl的座右銘是"有多種方法可以做到。"要猜測有多少種方法則留給讀者自行探索。
一個程式設計師的三個主要美德是懶惰、急躁和傲慢。詳細原因請參見駱駝書。