Perl - 语法概述

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 comment
print "Hello, world\n";

=begin comment
This is all part of multiline comment.
You can use as many lines as you like
These comments will be ignored by the 
compiler until the next =cut is encountered.
=cut

这将产生以下结果 :

Hello,world

Perl中的空格

Perl程序不关心空格.以下程序完美无缺;

#!/usr/bin/perl

print       "Hello, world\n";

但是如果空格在引用的字符串中,那么它们将按原样打印.例如 :

#!/usr/bin/perl

# This would print with a line break in the middle
print "Hello
          world\n";

这将产生以下结果 :

Hello
          world

当在引号之外使用时,所有类型的空格(如空格,制表符,换行符等)都等同于解释器.只包含空格的行(可能带有注释)称为空行,Perl完全忽略它.

Perl中的单引号和双引号

您可以在文字字符串周围使用双引号或单引号,如下所示;

#!/usr/bin/perl

print "Hello, world\n";
print 'Hello, world\n';

这将产生以下结果 :

Hello, world
Hello, world\n$

单引号和双引号有重要区别.只有双引号插入变量和特殊字符(如换行符\ n),而单引号不会插入任何变量或特殊字符.检查下面的示例,我们使用$ a作为变量来存储值,然后打印该值:

#!/usr/bin/perl

$a = 10;
print "Value of a = $a\n";
print 'Value of a = $a\n';

这将产生以下结果 :

Value of a = 10
Value of a = $a\n$

"这里"文件

你可以非常舒适地存储或打印多行文字.即使您可以使用"here"文档中的变量.下面是一个简单的语法,仔细检查<<<<<<<<和标识符.

标识符可以是一个单词或一些引用文本,就像我们在下面使用EOF一样.如果引用了标识符,则您使用的引用类型将决定对此docoment中文本的处理方式,就像在常规引用中一样.不带引号的标识符就像双引号一样.

#!/usr/bin/perl

$a = 10;
$var = <<"EOF";
This is the syntax for here document and it will continue
until 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 = $a
EOF
print "$var\n";

$var = <<'EOF';
This is case of single quote so variable value will be 
interpolated. For example value of a = $a
EOF
print "$var\n";

这将产生以下结果 :

This is the syntax for here document and it will continue
until 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 = 10

This is case of single quote so variable value will be
interpolated. 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中的两个不同的标识符.