目錄

名稱

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

內部和 C 語言介面

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 perldocman perldoc)以獲取 perldoc 的其他有用選項。

通常,如果您的程式出現了奇怪的問題,並且您不確定應該在哪裡尋求幫助,請嘗試使您的程式遵循 use strictuse warnings。這些通常會準確指出問題所在。

描述

Perl 正式代表實用擷取及報告語言,除非不是。

Perl 最初是一種針對掃描任意文本文件、從這些文本文件中提取信息並基於該信息打印報告的語言。它很快成為許多系統管理任務的良好語言。多年來,Perl 已發展成為一種通用編程語言。它被廣泛用於從快速的「一行命令」到完整應用程序開發的各種任務中。

該語言旨在實用(易於使用、高效、完整),而不是美麗(微小、優雅、最小化)。它結合了(無論如何在作者看來)sedawksh 的一些最佳特性,使其對於 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的座右銘是"有多種方法可以做到。"要猜測有多少種方法則留給讀者自行探索。

一個程式設計師的三個主要美德是懶惰、急躁和傲慢。詳細原因請參見駱駝書。