Perl 基础语法

Perl借用了C、sed、awk、shell脚本以及很多其他编程语言的特性,语法与这些语言有些类似,也有自己的特点。

Perl 程序有声明与语句组成,程序自上而下执行,包含了循环,条件控制,每个语句以分号 (;) 结束。

Perl 语言没有严格的格式规范,你可以根据自己喜欢的风格来缩进。


第一个 perl 程序

交互式编程

你可以在命令行中使用 -e 选项来输入语句来执行代码,实例如下:

$ perl -e 'print "Hello World\n"'

输入以上命令,回车后,输出结果为:

Hello World

脚本式编程

我们将以下代码放到 hello.pl 文件中:

#!/usr/bin/perl# 输出 "Hello, World"
print "Hello, world\n";

#!/usr/bin/perl # 输出 "Hello, World" print "Hello, world\n";

代码中 /usr/bin/perl 是 perl 解释器的路径。在执行该脚本前要先确保文件有可执行权限,我们可以先将文件权限修改为 0755 :

$ chmod 0755 hello.pl
$ ./hello.pl
Hello, world                   # 输出结果

print 也可以使用括号来输出字符串,以下两个语句输出相同的结果:

print("Hello, world\n");
print "Hello, world\n";

脚本文件

perl 代码可以写在一个文本文件中,以 .pl、.PL 作为后缀。

文件名可以包含数字,符号和字母,但不能包含空格,可以使用下划线(_)来替代空格。

一个简单的Perl 文件名:

run_oob.pl

注释

使用注释使你的程序易读,这是好的编程习惯。

perl 注释的方法为在语句的开头用字符#,如:

# 这一行是 perl 中的注释

perl 也支持多行注释,最常用的方法是使用 POD(Plain Old Documentations) 来进行多行注释。方法如下:

#!/usr/bin/perl# 这是一个单行注释
print "Hello, world\n";=pod 注释
这是一个多行注释
这是一个多行注释
这是一个多行注释
这是一个多行注释
=cut

执行以上程序,输出结果为:

Hello, world

注意:

  • =pod、 =cut只能在行首。
  • 以=开头,以=cut结尾。
  • =后面要紧接一个字符,=cut后面可以不用。

Perl 中的空白

Perl 解释器不会关心有多少个空白,以下程序也能正常运行:

实例

#!/usr/bin/perl print "Hello, world\n";

执行以上程序,输出结果为:

Hello, world

但是如果空格和分行出现在字符串内,他会原样输出:

实例

#!/usr/bin/perl# 会输出分行
print "Helloworld\n";

执行以上程序,输出结果为:

Helloworld

所有类型的空白如:空格,tab ,空行等如果在引号外解释器会忽略它,如果在引号内会原样输出。


单引号和双引号

perl 输出字符串可以使用单引号和双引号,如下所示:

实例

#!/usr/bin/perl
print "Hello, world\n"; # 双引号
print 'Hello, world\n'; # 单引号

输出结果如下:

Hello, world
Hello, world\n

从结果中我们可以看出,双引号 \n 输出了换行,而单引号没有。

Perl双引号和单引号的区别: 双引号可以正常解析一些转义字符与变量,而单引号无法解析会原样输出。

实例

#!/usr/bin/perl
$a = 10;  #Perl中定义变量的语句:$+变量名
print "a = $a\n";
print 'a = $a\n';

输出结果如下:

a = 10
a = $a\n

Here 文档

Here文档又称作heredoc、hereis、here-字串或here-脚本,是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字串的方法。

使用概述:

  • 1.必须后接分号,否则编译通不过。
  • 2.END可以用任意其它字符代替,只需保证结束标识与开始标识一致。
  • 3.结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
  • 4.开始标识可以不带引号号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
  • 5.当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。

实例

#!/usr/bin/perl$a = 10;
$var = <<"EOF";
这是一个 Here 文档实例,使用双引号。
可以在这输如字符串和变量。
例如:a = $a
EOF
print "$var\n";$var = <<'EOF';
这是一个 Here 文档实例,使用单引号。
例如:a = $a
EOF
print "$var\n";

执行以上程序输出结果为:

这是一个 Here 文档实例,使用双引号。
可以在这输如字符串和变量。
例如:a = 10这是一个 Here 文档实例,使用单引号。
例如:a = $a

转义字符

如果我们需要输出一个特殊的字符,可以使用反斜线(\)来转义,例如输出美元符号($):

实例

#!/usr/bin/perl$result = "菜鸟教程 \"runoob\"";
print "$result\n";
print "\$result\n";

执行以上程序输出结果为:


Perl 标识符

Perl 标识符是用户编程时使用的名字,在程序中使用的变量名,常量名,函数名,语句块名等统称为标识符。

  • 标识符组成单元:英文字母(a~z,A~Z),数字(0~9)和下划线(_)。
  • 标识符由英文字母或下划线开头。
  • 标识符区分大小写,$runoob 与 $Runoob 表示两个不同变量。

Perl教程-3.基础语法相关推荐

  1. NSIS教程(1): 基础语法

    NSIS教程: <NSIS用户手册 中文版> <NSIS图文教程集锦 - 轻狂志> 一. 环境搭建 NSIS是"Nullsoft Scriptable Install ...

  2. python缩进编码教程_python基础语法教程:行与缩进

    缩进 使用缩进来表示代码块,不需要使用大括号 {} . 同一个代码块的语句必须包含相同的缩进空格数. 多行语句 Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠()来实现多行语 ...

  3. java基础语法实例教程_Java 基础语法

    一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作 面向对象中的一些概念 下表列出了 面向对象 编程中的一些概念 名词 说明 对象 对象是类的一个实例,有状态和行为 ...

  4. java基础教程:基础语法之术语和入口类(2)

    我们上节课已经学会了如何安装java环境,编译和运行java代码.那么,java当中有哪些编程的语法规则呢? 我们会通过几节课来了解这部分内容.这几节课不会从面向对象的方向来解释java的语法,后面会 ...

  5. c语言中dir的用法,批处理教程:基础语法之dir命令

    DIR命令是Windows DOS中很常用.且很简单的命令.该命令用来列出当前目录下面所有文件和子目录的信息.该信息包含了文件/目录的最后修改日期.文件类型.文件大小和文件/目录名称. dir最常用的 ...

  6. Xamarin XAML语言教程基础语法篇大学霸

    Xamarin XAML语言教程基础语法篇大学霸 前  言 Xamarin是一个跨平台开发框架.它可以用来开发iOS.Android.Windows Phone和Mac的应用程序.使用Xamarin框 ...

  7. python菜鸟基础教程-python基础菜鸟教程,Python的基础语法

    原标题:python基础菜鸟教程,Python的基础语法 什么是Python?Python是一门简单直观的编程语言,并且目前是开源的,可以方便任何人使用. Python的开发哲学:用一种方法,最好是只 ...

  8. Python基础教程(二):基础语法、变量类型

    Python 基础语法 Python语言与Perl,C和Java等语言有许多相似之处.但是,也存在一些差异. 在本章中我们将来学习Python的基础语法,让你快速学会Python编程. 第一个Pyth ...

  9. python基础学习教程:Python基础语法

    Python 语言与 Perl,C 和 Java 等语言有许多相似之处.但是,也存在一些差异. 在本章中我们将来学习 Python 的基础语法,让你快速学会 Python 编程. 第一个 Python ...

  10. python设计一个函数定义计算并返回n价调和函数_音乐编程语言musicpy教程(第三期) musicpy的基础语法(二)...

    这个是我在github上给我的项目musicpy写的wiki,分为数据结构,基础语法,实际应用三大部分来为大家讲解这门音乐编程语言,主要是想给大家写一个musicpy的详细的教程与介绍,目前wiki只 ...

最新文章

  1. 纪念数学家、系统与控制学家关肇直院士《泛函分析》
  2. iOS 地图定位 定位
  3. 通讯编码器测试软件,西门子S7-200 SMART通过modbusRTU与绝对值编码器通信
  4. php进程守护进程,php 多进程实现守护进程的实例代码
  5. 网络请求数据解析时,判断数据是否为空
  6. java微信支付,企业微信号转账给个人
  7. 高通骁龙430系列-MSM8937 ( Cortex-A53架构)
  8. win10 安装redis 解压版
  9. 模拟电子技术基础_常用半导体器件
  10. 如何成为一名优秀的数据工匠?
  11. 简单实现RPC/RMI框架
  12. 利用Excel绘制超好看的直方图与正态分布曲线
  13. U盘装Win11教程 系统之家装机教程
  14. xutils的bitmap的深度使用
  15. JavaScript笔记(狂神说)
  16. 让用户输入一个三位数(若不是三位数则提示错误),判断该数是否是水仙花数。(水仙花数:每一位上的数字的立方和,等于该数本身)
  17. 『注册中心』Consul微服务注册中心的使用及相关集群搭建
  18. JVM源码系列:JVM内部运行之Class的Method
  19. 计算机科学上课带电脑,985 高校计算机系学生都在用的笔记本,我被深深地种草了!...
  20. WSL安装TexLive

热门文章

  1. 软件测试工作交接文档模版,软件测试岗位人员离职文档交接
  2. android协同开发平台,开发协作平台
  3. 美通企业日报 | 英特尔百度签署新合作备忘录;佛山照明与阿里云战略合作物联网生态...
  4. 关于城市照明的大局观
  5. 揭开银行U盾的秘密---签发CA证书:单向认证+双向认证(含java代码)
  6. 红帽linux64系统下载,红帽rhel6.5下载
  7. 【2022-10-19】让Mac QQ自带截图软件单独运行 / 节省大量系统内存 / 快捷截图 / ScreenCapture QQ/ QQ jietu plugin
  8. 刺客信条3一直显示育碧服务器,刺客信条3免Uplay启动游戏的方法
  9. 查看linux系统日志某一天,linux系统日志查看
  10. 计算机网络 以太网 和令牌环网