Perl语法基础 #

一、注释 #

1.1 单行注释 #

使用 # 号:

perl
my $name = "Perl";

print "Hello, $name\n";

1.2 多行注释 #

Perl没有内置多行注释,常用以下方式:

使用POD格式:

perl
=pod
这是多行注释
可以写很多内容
=cut

print "Hello\n";

使用多个单行注释:

perl
print "Hello\n";

1.3 文档注释 #

POD(Plain Old Documentation)格式:

perl
=head1 NAME

MyScript - 示例脚本

=head1 SYNOPSIS

    perl myscript.pl

=head1 DESCRIPTION

这是一个示例脚本,
演示POD文档格式。

=cut

查看POD文档:

bash
perldoc myscript.pl

二、标识符 #

2.1 命名规则 #

  • 以字母或下划线开头
  • 后续可以是字母、数字、下划线
  • 长度不限
  • 区分大小写
perl
my $name;       
my $_count;     
my $count2;     
my $MAX_SIZE;   

2.2 命名约定 #

类型 约定 示例
标量变量 小写,下划线分隔 $user_name
数组 小写,复数形式 @users
哈希 小写,单数形式 %user
子程序 小写,下划线分隔 get_user_name()
常量 全大写 $MAX_SIZE
包名 驼峰命名 MyModule

2.3 特殊变量 #

Perl有内置的特殊变量:

perl
$_      
@ARGV   
%ENV    
$.      
$/      

三、关键字 #

3.1 常用关键字 #

类别 关键字
声明 my, our, local, state, sub, package
控制流 if, else, elsif, unless, while, until, for, foreach, given, when
循环控制 last, next, redo, continue
逻辑 and, or, not, xor
比较 eq, ne, lt, gt, le, ge, cmp
其他 use, require, print, say, return, die, warn, eval

3.2 避免使用关键字作为变量名 #

perl
my $if = 1;     
my $for = 10;   

四、语句与块 #

4.1 语句 #

语句以分号结尾:

perl
my $a = 1;
my $b = 2;
print $a + $b;

4.2 代码块 #

使用花括号包围:

perl
{
    my $temp = 10;
    print $temp;
}

4.3 语句修饰符 #

单语句可使用修饰符:

perl
print "Hello\n" if $flag;
print "Error\n" unless $ok;
print $_ foreach @items;

五、空白与缩进 #

5.1 空白 #

Perl忽略空白(字符串内除外):

perl
my $a=1;
my $a = 1;
my $a   =   1;

5.2 缩进风格 #

推荐使用4空格缩进:

perl
if ($condition) {
    do_something();
    if ($another) {
        do_more();
    }
}

六、代码规范 #

6.1 use strict和warnings #

始终在脚本开头使用:

perl
#!/usr/bin/perl
use strict;
use warnings;

strict的作用:

  • 强制变量声明
  • 禁止裸字
  • 禁止符号引用

warnings的作用:

  • 启用所有警告
  • 帮助发现潜在问题

6.2 代码风格建议 #

变量声明:

perl
my $name = "Perl";
my ($a, $b, $c) = (1, 2, 3);

行长度:

  • 每行不超过80字符
  • 长表达式适当换行

空格使用:

perl
my $sum = $a + $b;

if ($x > 0) {
    do_something();
}

my @items = (1, 2, 3);

6.3 perltidy #

使用perltidy格式化代码:

bash
cpanm Perl::Tidy
perltidy script.pl

七、Here文档 #

7.1 基本语法 #

perl
my $text = <<'END';
这是一段
多行文本
END

print $text;

7.2 插值Here文档 #

perl
my $name = "Perl";
my $text = <<"END";
Hello, $name!
Welcome to Perl.
END

print $text;

输出:

text
Hello, Perl!
Welcome to Perl.

7.3 Here文档用法 #

perl
print <<HTML;
<html>
<head><title>Test</title></head>
<body>
<h1>Hello</h1>
</body>
</html>
HTML

八、数据类型概述 #

Perl有三种基本数据类型:

8.1 标量 #

$ 开头,存储单个值:

perl
my $name = "Perl";
my $count = 42;
my $pi = 3.14159;

8.2 数组 #

@ 开头,存储有序列表:

perl
my @colors = ("red", "green", "blue");
print $colors[0];  

8.3 哈希 #

% 开头,存储键值对:

perl
my %person = (
    name => "Tom",
    age  => 25,
);
print $person{name};  

九、实践练习 #

练习1:编写规范脚本 #

perl
#!/usr/bin/perl
use strict;
use warnings;
use v5.10;

=head1 NAME

greet.pl - 问候程序

=head1 DESCRIPTION

输出问候信息

=cut

my $name = "Perl";
my $version = 5.36;

say "=" x 30;
say "Language: $name";
say "Version: $version";
say "=" x 30;

练习2:使用Here文档 #

perl
#!/usr/bin/perl
use strict;
use warnings;
use v5.10;

my $user = "张三";

print <<"EMAIL";
To: $user@example.com
Subject: Welcome

Dear $user,

Welcome to our system!

Best regards,
Admin
EMAIL

十、总结 #

本章学习了:

  • 单行注释和多行注释
  • 标识符命名规则和约定
  • Perl关键字
  • 语句和代码块
  • 代码规范和最佳实践
  • Here文档
  • 数据类型概述

下一章将深入学习Perl的数据类型。

最后更新:2026-03-27