# Perl 语法

> 原文： [https://beginnersbook.com/2017/02/perl-syntax/](https://beginnersbook.com/2017/02/perl-syntax/)

我们在上一篇教程[“第一个 perl 程序”](https://beginnersbook.com/2017/02/first-perl-program/)中熟悉了 Perl 的基础知识。在本教程中，我们将了解有关 Perl 语法和命名约定的几个要点。

### Perl 文件命名约定

Perl 文件名可以包含数字，符号，字母和下划线（`_`），但文件名中不允许使用空格。例如`hello_world.pl`是一个有效的文件名，但是`hello world.pl`是一个无效的文件名。

Perl 文件可以使用`.pl`或`.PL`扩展名保存。

### Perl 中单引号和双引号之间的区别

单引号和双引号在 Perl 程序中表现不同。要了解差异，让我们看看下面的代码：

```perl
#!/usr/bin/perl

print "Welcome to\t Beginnersbook.com\n";
print 'Welcome to\t Beginnersbook.com\n';
```

这将产生以下输出：

```perl
Welcome to Beginnersbook.com
Welcome to\t Beginnersbook.com\n
```

您可以清楚地看到双引号内插转义序列`\t`和`\n`的区别，但是单引号没有。

另一个例子：

```perl
#!/usr/bin/perl

$website = "Beginnersbook";
print "Website Name: $website\n";
print 'Website Name: $website\n';
```

**输出：**

```perl
Website Name: Beginnersbook
Website Name: $website\n
```

#### 使用单引号

您可能正在考虑避免在 perl 程序中使用单引号，但在某些情况下您可能希望使用单引号。
例如如果要将电子邮件地址存储在变量中，那么双引号会引发错误，在这种情况下需要使用单引号。例如

```perl
$ email = "xyz@gmail.com"; # 会抛出错误
$ email = 'xyz@gmail.com'; # 会工作得很好
```

### Perl 中的反斜杠

反斜杠可以执行以下两个任务之一：

1）它消除了跟随它的字符的特殊含义。对于例如打印`\$myvar`会产生`$myvar`输出而不是变量`myvar`值，因为在`$`之前的反斜杠（`\`）消除了`$`的特殊含义

2）它是反斜杠或转义序列的开始。对于例如`\n`是用于换行的转义序列

#### 有什么用？

相信我，你会在 perl 中开发应用时经常使用它。假设您要打印包含双引号的字符串。对于例如如果我想打印：`Hello This is "My blog"`然后我需要使用以下逻辑：

```perl
#!/usr/bin/perl

$msg = "Hello This is \"My blog\"";
print "$msg\n";
```

**输出：**

```perl
Hello This is "My blog"
```