Perl借用了许多语言的语法和概念:awk,sed,C,Bourne Shell,Smalltalk,Lisp甚至英语.但是,语言之间存在一些明显的差异.本章旨在让您快速了解Perl中预期的语法.
Perl程序包含一系列声明和语句,从顶部运行到底部.循环,子例程和其他控制结构允许您在代码中跳转.每个简单的语句必须以分号(;)结尾.
Perl是一种自由格式语言:您可以根据需要对其进行格式化和缩进. Whitespace主要用于分隔令牌,不像Python这样的语言,它是语法的重要组成部分,或Fortran,它是无关紧要的.
First Perl Program
交互式模式编程
您可以在命令行中使用带有 -e 选项的Perl解释器,这样您就可以从命令行执行Perl语句.让我们在$提示符下尝试以下内容&减去;
$perl -e 'print "Hello World\n"'
此执行将产生以下结果 :
Hello, world
脚本模式编程
假设您已经处于$ prompt状态,让我们使用vi或vim编辑器打开一个文本文件hello.pl将以下行放在您的文件中.
#!/usr/bin/perl# This will print "Hello, World"print "Hello, world\n";
这里/usr/bin/perl 实际上是perl解释器二进制文件.在执行脚本之前,请务必更改脚本文件的模式并赋予执行权限,通常设置为0755可以正常工作,最后执行上面的脚本如下 :
$chmod 0755 hello.pl$./hello.pl
此执行将产生以下结果结果 :
Hello, world
您可以使用括号功能参数或根据您的个人品味省略它们.他们只是偶尔需要澄清优先权问题.以下两个语句产生相同的结果.
print("Hello, world\n");print "Hello, world\n";
Perl文件扩展名
可以在任何普通的简单文本编辑器程序中创建Perl脚本.每种类型的平台都有几种程序可用.有许多程序员可以在网上下载程序.
作为Perl约定,Perl文件必须以.pl或.PL文件扩展名保存才能被识别作为一个功能正常的Perl脚本.文件名可以包含数字,符号和字母,但不能包含空格.在空格的位置使用下划线(_).
Perl中的注释
任何编程语言中的注释都是开发人员的朋友.注释可用于使程序用户友好,并且它们只是被解释器跳过而不会影响代码功能.例如,在上面的程序中,以hash #开头的行是注释.
简单地说Perl中的注释以哈希符号开头并运行到结束行 :
# This is a comment in perl
以=开头的行被解释为嵌入式文档(pod)的一部分的开头,编译器忽略所有后续行直到next = cut.以下是示例 :
#!/usr/bin/perl# This is a single line commentprint "Hello, world\n";=begin commentThis is all part of multiline comment.You can use as many lines as you likeThese comments will be ignored by the compiler until the next =cut is encountered.=cut
这将产生以下结果 :
Hello,world
Perl中的空格
Perl程序不关心空格.以下程序完美无缺;
#!/usr/bin/perlprint "Hello, world\n";
但是如果空格在引用的字符串中,那么它们将按原样打印.例如 :
#!/usr/bin/perl# This would print with a line break in the middleprint "Hello world\n";
这将产生以下结果 :
Hello world
当在引号之外使用时,所有类型的空格(如空格,制表符,换行符等)都等同于解释器.只包含空格的行(可能带有注释)称为空行,Perl完全忽略它.
Perl中的单引号和双引号
您可以在文字字符串周围使用双引号或单引号,如下所示;
#!/usr/bin/perlprint "Hello, world\n";print 'Hello, world\n';
这将产生以下结果 :
Hello, worldHello, world\n$
单引号和双引号有重要区别.只有双引号插入变量和特殊字符(如换行符\ n),而单引号不会插入任何变量或特殊字符.检查下面的示例,我们使用$ a作为变量来存储值,然后打印该值:
#!/usr/bin/perl$a = 10;print "Value of a = $a\n";print 'Value of a = $a\n';
这将产生以下结果 :
Value of a = 10Value of a = $a\n$
"这里"文件
你可以非常舒适地存储或打印多行文字.即使您可以使用"here"文档中的变量.下面是一个简单的语法,仔细检查<<<<<<<<和标识符.
标识符可以是一个单词或一些引用文本,就像我们在下面使用EOF一样.如果引用了标识符,则您使用的引用类型将决定对此docoment中文本的处理方式,就像在常规引用中一样.不带引号的标识符就像双引号一样.
#!/usr/bin/perl$a = 10;$var = <<"EOF";This is the syntax for here document and it will continueuntil it encounters a EOF in the first line.This is case of double quote so variable value will be interpolated. For example value of a = $aEOFprint "$var\n";$var = <<'EOF';This is case of single quote so variable value will be interpolated. For example value of a = $aEOFprint "$var\n";
这将产生以下结果 :
This is the syntax for here document and it will continueuntil it encounters a EOF in the first line.This is case of double quote so variable value will beinterpolated. For example value of a = 10This is case of single quote so variable value will beinterpolated. For example value of a = $a
转义字符
Perl使用反斜杠(\)字符来转义任何可能干扰我们代码的角色.让我们举一个例子,我们要打印双引号和$ sign :
#!/usr/bin/perl$result = "This is number";print "$result\n";print "\$result\n";
这将产生以下结果 :
This is "number"$result
Perl标识符
Perl标识符是用于标识变量的名称,函数,类,模块或其他对象. Perl变量名以$,@开头.或%后跟零个或多个字母,下划线和数字(0到9).
Perl不允许在标识符中使用标点符号,例如@,$和%. Perl是一种区分大小写的编程语言.因此, $ Manpower 和 $ manpower 是Perl中的两个不同的标识符.