Perl
编程范型 | |
---|---|
设计 | |
实作 | |
发行时间 | 1987 |
| |
动态 | |
实作语言 | C语言 |
许可证 | 艺术许可协 1.0[2][3] GNU |
.pl, .pm, .t, .pod | |
网站 | www |
启发语言 | |
AWK、C语言、C++、Lisp、Pascal, sed、Smalltalk 80、Unix shell | |
CoffeeScript、ECMAScript、Groovy、 JavaScript、Julia、LPC、Perl 6、PHP、Python、Ruby、Windows PowerShell | |
|
Perl
Perl
2000
Perl语言应用广泛,涵盖CGI、图形编程、
历史
[编辑]早期 版本
[编辑]沃尔
Perl 2,于1988
从前,Perl
早期 的 Perl 5
[编辑]Perl 4
Perl 5.000于1994
Perl 5.001于1995
Perl 5历史
Perl 5.004于1997
Perl现在也
Perl 5.005于1998B::*
qr//
2000年 至 今
[编辑]5.5 | 2004 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.6 | 2003 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.8 | 2008 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.10 | 2009 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.12 | 2012 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.14 | 2013 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.16 | 2013 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.18 | 2014 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.20 | 2015 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.22 | 2017 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.24 | 2018 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.26 | 2018 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.28 | 2020 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.30 | 2020 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.32 | 2021 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.34 | 2023 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.36 | 2023 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.38 | 2023 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Perl 5.6于2000
2000
Perl 5.8
2004
2007
Perl 5开发过程
2010package NAME VERSION
语法,Yada Yadause strict;
(use 5.012;
时)
Perl 5.14发布于2011
Perl 5.16发布于2012
名称
[编辑]Perl
骆驼标志
[编辑]《Programming Perl》,
洋 葱 标志
[编辑]Perl
Perl简介
[编辑]Perl语言的 中心 思想
[编辑]Perl语言
There's More Than One Way To Do It.
(不 只 一种方法来做一件事。)
Perl
There's more than one way to do it, but sometimes consistency is not a bad thing either.
(不 只 一种方法来做一件事,但 有 时保持 一 致也不 错。)
- TIMTOWTDIBSCINABTE,发音为“Tim Toady Bicarbonate”[43].
另一个Perl
Easy things should be easy, and hard things should be possible.
(简单的 事情 应该是 简单的 ,复杂的 事情 应该尽 可能 地 变得简单。)
优点
[编辑]为了实现这样
缺点
[编辑]也正
use strict;
以及use warnings;
,并统
Perl的 语法
[编辑]Perl的 Hello World程 式
[编辑]#!/usr/bin/env perl
print "Hello, world!\n";
如果
#!/usr/bin/env perl
use 5.010;
say "Hello, world!";
这个
变量
[编辑]Perl$a=5;
$b="Hello";
$c=3.2;
$d='\n这里并不换行';
Perl
另外,Perl还有一种特殊的类型,
$foo = \$bar; print $$foo;
$foo = \@bar; print @$foo;
$foo = \%bar; print %$foo;
$foo = \&bar; print $foo->(); print &$foo;
sub foo
{
my $var = shift;
$$var = '1';
}
my $foo = '2';
my $var = \$foo;
print $$var;
foo ($var);
print $foo;
输出“21”,
判断 语句
[编辑]- if
区 块
if ($hour > 22) {
print "should sleep...\n";
}
- if语句
print "hello" if $guest >= 1;
- unless
区 块
unless ($credit > 100) {
print "You can not graduate!\n";
}
- unless语句
print "eat\n" unless $food == 0;
- given/when(语句及区块)
use 5.010;
given ($foo)
{
say 'a' when 'a';
when (/b/) { say 'b'; } #when可 以写成 语句或 区 块
default { say 'not match'; } #只 可 以写成 区 块。
}
open DATA, '<', $filename or die "Can't open $filename: $!\n";
循环语句
[编辑]Perl
Perl
@group = 1 .. 10;
for (@group) {
print "$_\n";
}
print "$_\n" for @group;
foreach (@group) {
print "$_\n";
}
从C语言
for ($i = 0; $i < 10; $i++) {
print "$group[$i]\n";
}
while循环:
$i=0;
while ($i < 10) {
print "$group[$i]\n";
$i++;
}
do...while循环:
$i = 0;
do {
print "$group[$i]\n";
$i++;
} while ($i < 10);
until循环:
$i = 0;
until ($i == 10) {
print "$group[$i]\n";
$i++;
}
从PASCAL语言
$i = 0;
do {
print "$group[$i]\n";
$i++;
} until ($i == 10);
甚至还有
map { print "$_\n" } @group;
其实还有其他
Perl的 应用
[编辑]Perl
以Perl编写的 软件
[编辑]Perl Data Language
[编辑]Perl Data Language(简称PDL)
而且PDL
Perl的 社 区 文化
[编辑]Perl诗经
[编辑]JAPH
[编辑]Just another Perl hacker(另一个Perl
竞争对手
[编辑]Ruby
2000
class Foo is Universal { # inherit form Universal
has $.member_variable
method member_function {
print "some string";
}
}
Raku
另外,Raku
Raku
if $percent > 100 {
say "weird mathematics";
}
for 1..3 {
# using $_ as loop variable
say 2 * $_;
}
for 1..3 -> $x {
# with explicit loop variable
say 2 * $x;
}
while $stuff.is_wrong {
$stuff.try_to_make_right;
}
if ($hour > 22) { #正確
say 'should sleep...';
}
if($hour > 22) { #錯誤
say 'should sleep...';
}
参考 文献
[编辑]- ^ "perl v5.40.0 is now available";
作者 姓 名字 符 串 : Graham Knop;出版 日 期 : 2024年 6月 9日 ; 检索日 期 : 2024年 6月 10日 . - ^ The "Artistic License" - dev.perl.org. dev.perl.org. [2018-12-17]. (
原始 内容 存 档于2018-07-24). - ^ Artistic (页面
存 档备份,存 于互联网档案 馆) - file on the Perl 5 git repository - ^ Perl Licensing. dev.perl.org. [2011-01-08]. (
原始 内容 存 档于2011-01-22). - ^ perl 5.36.0 is now available. www.nntp.perl.org. [2022-05-28]. (
原始 内容 存 档于2022-07-05). - ^ Perl 5.34.1 is now available!. www.nntp.perl.org. [2022-03-13]. (
原始 内容 存 档于2022-04-11). - ^ perl 5.37.0 is now available. www.nntp.perl.org. [2022-05-28]. (
原始 内容 存 档于2022-07-05). - ^ Lapworth, Leo. General Questions About Perl. Perl FAQ. Perl.org. [February 24, 2012]. (
原始 内容 存 档于2013-06-22). - ^ perl(1): Practical Extraction/Report Language - Linux man page. Linux.die.net. [2013-07-23]. (
原始 内容 存 档于2013-06-22). - ^ Perl Core Development - Perl 6. [2006-02-10]. (
原始 内容 存 档于2006-02-07). - ^ Sheppard, Doug. Beginner's Introduction to Perl. O'Reilly Media. 2000-10-16 [2008-07-27]. (
原始 内容 存 档于2008-06-04). - ^ Wall, Larry, Tom Christiansen and Jon Orwant. Programming Perl, Third Edition. O'Reilly Media. July 2000. ISBN 0-596-00027-8.
- ^ comp.sources.unix. Google Groups. Google. 1988-02-01 [2011-01-13]. (
原始 内容 存 档于2013-05-10). - ^ perl.perl5.porters archive. perl.org. [2011-01-13]. (
原始 内容 存 档于2011-05-01). - ^ perlhist - the Perl history records. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. (
原始 内容 存 档于2011-01-13). - ^ CPAN. CPAN. [2012-04-14]. (
原始 内容 存 档于2011-02-26). - ^ 17.0 17.1 perl5004delta - what's new for perl5.004. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-08]. (
原始 内容 存 档于2011-02-27). - ^ Patwardhan, Nathan; Siever, Ellen; Spainhour, Stephen. Perl in a Nutshell, Second Edition. O'Reilly Media. 2002 [2011-01-08]. ISBN 978-0-596-00241-1.
- ^ perl5005delta - what's new for perl5.005. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. (
原始 内容 存 档于2011-02-03). - ^ Perl Source. cpan.org. [2023-11-26]. (
原始 内容 存 档于2024-05-21). - ^ perl56delta - what's new for perl v5.6.0. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. (
原始 内容 存 档于2011-02-02). - ^ perl56delta - what's new for perl v5.6.x. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. (
原始 内容 存 档于2010-11-18). - ^ Wall, Larry. Apocalypse 1: The Ugly, the Bad, and the Good. [2011-01-08]. (
原始 内容 存 档于2010-11-23). - ^ perl58delta - what is new for perl v5.8.0. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. (
原始 内容 存 档于2010-11-21). - ^ A Plan for Pugs. O'Reilly Media. 2005-03-03 [2011-01-27]. (
原始 内容 存 档于2012-09-08). - ^ Tang, Audrey. Re: How to Implement Perl 6 in Ten Years. PerlMonks. 2010-04-21 [2011-01-03]. (
原始 内容 存 档于2011-05-11). - ^ perl5100delta - what is new for perl 5.10.0. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-08]. (
原始 内容 存 档于2010-12-21). - ^ perlsyn - Perl syntax. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. (
原始 内容 存 档于2013-08-26). - ^ perl5120delta - what is new for perl v5.12.0. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-08]. (
原始 内容 存 档于2011-01-04). - ^ perldelta - what is new for perl v5.12.3. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-08]. (
原始 内容 存 档于2011-06-08). - ^ 31.0 31.1 perldelta - what is new for perl v5.16.0. Perl 5 version 16.0 documentation. search.cpan.org. [2012-05-21]. (
原始 内容 存 档于2012-05-24). - ^ 32.0 32.1 Richardson, Marjorie. Larry Wall, the Guru of Perl. Linux Journal. 1999-05-01 [2011-01-03]. (
原始 内容 存 档于2011-01-26). - ^ 33.0 33.1 perlfaq1: What's the difference between "perl" and "Perl"?. perldoc.perl.org - Perl 5 version 12.2 documentation. [2012-07-02]. (
原始 内容 存 档于2012-07-12). - ^ Schwartz, Randal. PERL as shibboleth and the Perl community. PerlMonks. [2007-06-01]. (
原始 内容 存 档于2007-09-27). - ^ Steve McConnell (2004) Code Complete, 2nd ed., Microsoft Press, p. 65.
- ^ Wall, Larry. perl - The Perl language interpreter. Perl 5 version 12.2 documentation. [2011-01-26]. (
原始 内容 存 档于2011-01-20). - ^ Wall, Larry. Re^7: PERL as shibboleth and the Perl community. PerlMonks. [2011-01-02]. (
原始 内容 存 档于2011-05-11). - ^ Schwartz, Randal L; Phoenix, Tom; foy, brian. Learning Perl, Third Edition. ISBN 978-0-596-00132-2.
- ^ O'Reilly—The Perl Camel Usage and Trademark Information. [2008-11-12]. (
原始 内容 存 档于2005-12-26). - ^ Index of /images/perl
- ^ Intermediate Perl. [2012-07-03]. (
原始 内容 存 档于2012-06-26). - ^ Perl Trademark. The Perl Foundation. [2011-01-09]. (
原始 内容 存 档于2011-05-03). - ^ Can EPO (or TPF) tame TIMTOWTDI?. dev411.com. 2009-01-24 [2012-07-03]. (
原始 内容 存 档于2012-06-25). - ^ The Lighter Side of Perl Culture (Part V): Poetry. [2015-11-19]. (
原始 内容 存 档于2015-11-19). - ^ The Lighter Side of Perl Culture (Part II): JAPH. [2015-11-19]. (
原始 内容 存 档于2015-11-19). - ^ What's wrong with Perl (页面
存 档备份,存 于互联网档案 馆) - ^ Why Python? (页面
存 档备份,存 于互联网档案 馆) - ^ A Byte Of Python (页面
存 档备份,存 于互联网档案 馆) - ^ Why Not Perl? (页面
存 档备份,存 于互联网档案 馆) - ^ “
我 认为Ruby这个名字 作 为Perl之 后 的 一门语言的名字真是再恰当不过了。”--摘录自O'Reilly访问Matz。 (页面存 档备份,存 于互联网档案 馆) - ^ Perl 6. The Perl 6 Project. [2011-02-27]. (
原始 内容 存 档于2011-02-21). - ^ About Perl. [2015-11-19]. (
原始 内容 存 档于2015-11-06) (英 语)."Perl" is a family of languages, "Perl 6" is part of the family, but it is a separate language which has its own development team.
- ^ Perl 5 to 6. [2012-07-04]. (
原始 内容 存 档于2012-07-03). - ^ Perl 5 to 6. [2012-07-04]. (
原始 内容 存 档于2012-07-03). - ^ Perl 5 to 6. [2012-07-04]. (
原始 内容 存 档于2012-07-03).
参 见
[编辑]外部 链接
[编辑]- Perl.com (页面
存 档备份,存 于互联网档案 馆)(O'REILLY) - Perl.org (页面
存 档备份,存 于互联网档案 馆) - Perl 6
的 开发网页(页面存 档备份,存 于互联网档案 馆) - CPAN - Comprehensive Perl Archive Network(页面
存 档备份,存 于互联网档案 馆):Perl程 式 的 集中 地 - CPAN检索(页面
存 档备份,存 于互联网档案 馆) - dmoz on Perl
- Perl Mongers (页面
存 档备份,存 于互联网档案 馆):全 球 各地 的 使用 者 组织 - Perl Monks (页面
存 档备份,存 于互联网档案 馆):一个很活跃的Perl社 区 - ActiveState (页面
存 档备份,存 于互联网档案 馆):Microsoft Windows上 的 Perl - Strawberry Perl (页面
存 档备份,存 于互联网档案 馆):由 Perl社 群 所 提供 之 Microsoft Windows版 Perl - Perl6::Perl5::Differences
中 文 资源、社 群
[编辑]- Perl@Taiwan(
繁 体 中 文 ) - Perl TW Planet(
繁 体 中 文 ) - Perl
学 习手札 (繁 体 中 文 ) 香港 Perl推广组(繁 体 中 文 )中国 Perl协会(简体中 文 )中国 Perl协会的 wiki(简体中 文 )
英文 资源、社 群
[编辑]- GB18030
源 码过滤软件 (页面存 档备份,存 于互联网档案 馆)(英文 ) - GBK
源 码过滤软件 (页面存 档备份,存 于互联网档案 馆)(英文 ) - Big5Plus
源 码过滤软件 (页面存 档备份,存 于互联网档案 馆)(英文 ) - EUC-TW
源 码过滤软件 (页面存 档备份,存 于互联网档案 馆)(英文 ) - Big5-HKSCS
源 码过滤软件 (页面存 档备份,存 于互联网档案 馆)(英文 )