1.Perl的执行方式
Perl的执行方式主要分为两种:交互式、脚本执行。
1.1 交互式
在命令行执行。
$perl -e <perl 代码> # Unix/Linux
C:>perl -e <perl 代码> # Windows/DOS
对于-e参数,也有其他参数,如下表。
选项 | 描述 |
---|---|
-d[:debugger] | 在调试模式下运行程序 |
-Idirectory | 指定 @INC/#include 目录 |
-T | 允许污染检测 |
-t | 允许污染警告 |
-U | 允许不安全操作 |
-w | 允许很多有用的警告 |
-W | 允许所有警告 |
-X | 禁用使用警告 |
-e program | 执行 perl 代码 |
file | 执行 perl 脚本文件 |
1.2 脚本执行
大部分的都是这种,Perl本身就是脚本语言,因此一定可以脚本执行。
1.2.1 脚本执行的方式
编程语言的执行方式。Perl就是解释执行。
1.2.2 执行过程
把Perl语句放在.pl的文件中,然后执行。
q.pl 文件中内容:
#! /usr/bin/perl -w
print "hello,world\n"
代码中 /usr/bin/perl 是 perl 解释器的路径。在执行该脚本前要先确保文件有可执行权限,还有另一种方法是将文件的权限变成 0755 :
$ chmod 0755 q.pl
$ ./q.pl
输出结果: Hello, world
1.3 文件名格式
perl 代码可以写在一个文本文件中,以 .pl、.PL 作为后缀。.pl文件就是脚本文件的后缀。
文件名格式:包含数字,符号和字母,但不能包含空格,可以使用下划线(_)来替代空格。
2.Perl的基本语法
2.1 注释
任何编程语言,注释都是第一个,好的代码是注释比代码多。
单行注释:Perl的注释是语句的用#开头。
#Perl的注释是#开头
多行注释:最常用的方法是使用 POD(Plain Old Documentations) 来进行多行注释。
=pod
Perl的多行注释,在之间
Perl的多行注释,在之间
Perl的多行注释,在之间
Perl的多行注释,在之间
……
=cut
注意:
1、=pod、 =cut只能在行首。
2、以=开头,以=cut结尾。
3、=后面要紧接一个字符,=cut后面可以不用。
2.2 Perl 中的空白(空格问题)
Python中代码的缩进原则很严格,决定代码内容。代码的缩进也可以保障代码的美观程度,和阅读质量。有时候我们ctrl大法得到的代码,中间有的时候也会有很多格,格式或多或少有不对的地方。就像这样:
print "Hello, world\n";
Perl中对图中可以忽略掉,例如:
也就是说:所有类型的空白如:空格,tab ,空行等如果在引号外解释器会忽略它,如果在引号内会原样输出。
2.4 单引号和双引号
perl 输出字符串时候对字符串使用的单引号和双引号是有区别的,例如:
#!/usr/bin/perl
print "Hello, world\n"; # 双引号
print 'Hello, world\n'; # 单引号
最终结果:
Hello, world
Hello, world\n
可以看到主要区别是:换行符\n在双引号中被解析出来了,但是在单引号中并没有被解析出来。
因此Perl双引号和单引号的区别: 双引号可以正常解析一些转义字符与变量,而单引号无法解析会原样输出。
甚至变量,在单引号中也不会被解析出来,例如:
#!/usr/bin/perl
$a = 10;
print "a = $a\n";
print 'a = $a\n';
输出结果如下:
a = 10
a = $a\n
在这种情况下:
#!/usr/bin/perl
print "I " Y" "; #这一句会报错的
print "I \"Y\" "; #这句是对的,通过反斜杠转义之后就可以输出I "Y"
一般在Perl中,利用q和qq代替单引号和双引号。
print q(I "Y" );
print qq(I "Y" );
#结果都是:I "Y"
2.5 Here文档
here文档是heredoc、hereis、here-字串或here-脚本,是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字串的方法。
我们先看一个Here文档示例:
#!/usr/bin/perl
$a = 10;
$var = <<"EOF";
这是一个 Here 文档实例,使用双引号。
可以在这输如字符串和变量。
例如:a = $a
EOF
print "$var\n";
输出结果是: 这是一个 Here 文档实例,使用双引号。 可以在这输如字符串和变量。 例如:a = 10 |
下面解读一下Perl的Here文档的格式:
命令 << "标记";
内容....
.....
.....
.....
标记
- << 其实就是重定向,把 "标记" 的内容重定向到这个命令里面,也可是变量里面。
- 必须后接分号,否则编译通不过。
- 标记可以用任意其它字符代替,只需保证结束标识与开始标识一致。
- 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
- 开始标识可以不带引号号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
- 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。
2.6 转义字符
如果我们需要输出一个特殊的字符,可以使用反斜线(\)来转义。
#!/usr/bin/perl
$a = " \" YYYYY\"";
print "$a\n";
print "\$a\n";
输出结果:
"YYYYY"
$a
2.7 标识符
Perl 标识符是用户编程时使用的名字,在程序中使用的变量名,常量名,函数名,语句块名等统称为标识符。同其他编程语言一样。
- 标识符组成单元:英文字母(a~z,A~Z),数字(0~9)和下划线(_)。
- 标识符由英文字母或下划线开头。
- 标识符区分大小写,$runoob 与 $Runoob 表示两个不同变量。