赞
踩
Perl,一种功能丰富的计算机程序语言,运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。
Perl 语言的应用范围很广,除CGI以外,Perl被用于图形编程、系统管理、网络编程、金融、生物以及其他领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。
SO, 什么是 Perl?
Perl是由Larry Wall设计的,并由他不断更新和维护的编程语言。
Perl具有高级语言(如C)的强大能力和灵活性。事实上,你将看到,它的许多特性是从C语言中借用来的。
Perl与脚本语言一样,Perl不需要compiler和elabrator来运行代码,你要做的只是写出程序并告诉Perl来运行而已。这意味着Perl对于小的编程问题的快速解决方案和为大型事件创建原型来测试潜在的解决方案是十分理想的。
Perl提供脚本语言(如sed和awk)的所有功能,还具有它们所不具备的很多功能。Perl还支持sed到Perl及awk到Perl的翻译器。
简而言之,Perl像C一样强大,像awk、sed等脚本描述语言一样方便。
Perl 优点
Perl 缺点
也正是因为Perl的灵活性和"过度"的冗余语法,也因此获得了仅写(write-only)的"美誉",因为Perl程序可以写得很随意(例如,变量不经声明就可以直接使用),但是可能少写一些字母就会得到意想不到的结果(而不报错),许多Perl程序的代码令人难以阅读,实现相同功能的程序代码长度可以相差十倍百倍,这就令程序的维护者(甚至是编写者)难以维护。
同样的,因为Perl这样随意的特点,可能会导致一些Perl程序员遗忘语法,以至于不得不经常查看Perl手册。
建议的解决方法是在程序里使用use strict,以及use warnings。并统一代码风格,使用库,而不是自己使用"硬编码"。Perl同样可以将代码书写得像Python或Ruby等语言一样优雅。
很多时候,perl.exe进程会占用很多的内存空间,虽然只是一时,但是感觉不好。
Perl 程序由声明与语句组成,程序自上而下执行,包含了循环,条件控制,每个语句以分号 ; 结束。
Perl 语言没有严格的格式规范,你可以根据自己喜欢的风格来缩进(和python不一样)。
交互式编程(命令行执行语句):
$ perl -e 'print "Hello World\n"'
脚本编程
下面内容在hw.pl文档中编写。
#!/usr/bin/perl
# 输出 "Hello, World"
print "Hello, world\n";
代码中 /usr/bin/perl 是 perl 解释器的路径。和tcl脚本一样,如果想直接用./hw.pl
命令执行,需要:
print 也可以使用括号来输出字符串,以下两个语句输出相同的结果:
print("Hello, world\n");
print "Hello, world\n";
#!/usr/bin/perl
# 这是一个单行注释
print "Hello, world\n";
=pod 注释
这是一个多行注释
这是一个多行注释
这是一个多行注释
这是一个多行注释
=cut
需要注意:
Perl 解释器不会关心有多少个空白,以下程序也能正常运行:
实例
#!/usr/bin/perl
print "Hello, world\n";
执行以上程序,输出结果为:Hello, world
但是如果空格和分行出现在字符串内,他会原样输出:
实例
#!/usr/bin/perl
#会输出分行
print "Hello
world\n";
执行以上程序,输出结果为:
Hello
world
总结:
所有类型的空白如:空格,tab ,空行等如果在引号外解释器会忽略它,如果在引号内会原样输出。
perl 输出字符串可以使用单引号和双引号,如下所示:
实例
#!/usr/bin/perl
print "Hello, world\n"; # 双引号
print 'Hello, world\n'; # 单引号
输出结果如下:
Hello, world
Hello, world\n
从结果中我们可以看出,双引号 \n 输出了换行,而单引号没有。
Perl双引号和单引号的区别: 双引号可以正常解析一些转义字符与变量,而单引号无法解析会原样输出。
Here文档又称作heredoc、hereis、here-字串或here-脚本,是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字串的方法。
使用概述:
1、必须后接分号,否则编译通不过。
2、EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
3、结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
4、开始标识可以不带引号号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
5、当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与 q 和 qq 的用法。
实例
#!/usr/bin/perl
$a = 10;
$var = <<"EOF";
这是一个 Here 文档实例,使用双引号。
可以在这输入字符串和变量。
例如:a = $a
EOF
print "$var\n";
$var = <<'EOF';
这是一个 Here 文档实例,使用单引号。
例如:a = $a
EOF
print "$var\n";
执行以上程序输出结果为:
这是一个 Here 文档实例,使用双引号。
可以在这输入字符串和变量。
例如:a = 10
这是一个 Here 文档实例,使用单引号。
例如:a = $a
从上面的例子可以看出,本质上EOF就代表了被$var = <<"EOF";
和EOF
包起来的字符串!
还可以看到用双引号包着的EOF和单引号的区别:单引号的字符串中$a无法被转义识别,直接输出字符。
如果我们需要输出一个特殊的字符,可以使用反斜线(\)来转义,例如输出美元符号($):
实例
#!/usr/bin/perl
$result = "say \"hello world\""<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。