Perl教程-3.基础语法
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.基础语法相关推荐
- NSIS教程(1): 基础语法
NSIS教程: <NSIS用户手册 中文版> <NSIS图文教程集锦 - 轻狂志> 一. 环境搭建 NSIS是"Nullsoft Scriptable Install ...
- python缩进编码教程_python基础语法教程:行与缩进
缩进 使用缩进来表示代码块,不需要使用大括号 {} . 同一个代码块的语句必须包含相同的缩进空格数. 多行语句 Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠()来实现多行语 ...
- java基础语法实例教程_Java 基础语法
一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作 面向对象中的一些概念 下表列出了 面向对象 编程中的一些概念 名词 说明 对象 对象是类的一个实例,有状态和行为 ...
- java基础教程:基础语法之术语和入口类(2)
我们上节课已经学会了如何安装java环境,编译和运行java代码.那么,java当中有哪些编程的语法规则呢? 我们会通过几节课来了解这部分内容.这几节课不会从面向对象的方向来解释java的语法,后面会 ...
- c语言中dir的用法,批处理教程:基础语法之dir命令
DIR命令是Windows DOS中很常用.且很简单的命令.该命令用来列出当前目录下面所有文件和子目录的信息.该信息包含了文件/目录的最后修改日期.文件类型.文件大小和文件/目录名称. dir最常用的 ...
- Xamarin XAML语言教程基础语法篇大学霸
Xamarin XAML语言教程基础语法篇大学霸 前 言 Xamarin是一个跨平台开发框架.它可以用来开发iOS.Android.Windows Phone和Mac的应用程序.使用Xamarin框 ...
- python菜鸟基础教程-python基础菜鸟教程,Python的基础语法
原标题:python基础菜鸟教程,Python的基础语法 什么是Python?Python是一门简单直观的编程语言,并且目前是开源的,可以方便任何人使用. Python的开发哲学:用一种方法,最好是只 ...
- Python基础教程(二):基础语法、变量类型
Python 基础语法 Python语言与Perl,C和Java等语言有许多相似之处.但是,也存在一些差异. 在本章中我们将来学习Python的基础语法,让你快速学会Python编程. 第一个Pyth ...
- python基础学习教程:Python基础语法
Python 语言与 Perl,C 和 Java 等语言有许多相似之处.但是,也存在一些差异. 在本章中我们将来学习 Python 的基础语法,让你快速学会 Python 编程. 第一个 Python ...
- python设计一个函数定义计算并返回n价调和函数_音乐编程语言musicpy教程(第三期) musicpy的基础语法(二)...
这个是我在github上给我的项目musicpy写的wiki,分为数据结构,基础语法,实际应用三大部分来为大家讲解这门音乐编程语言,主要是想给大家写一个musicpy的详细的教程与介绍,目前wiki只 ...
最新文章
- 纪念数学家、系统与控制学家关肇直院士《泛函分析》
- iOS 地图定位 定位
- 通讯编码器测试软件,西门子S7-200 SMART通过modbusRTU与绝对值编码器通信
- php进程守护进程,php 多进程实现守护进程的实例代码
- 网络请求数据解析时,判断数据是否为空
- java微信支付,企业微信号转账给个人
- 高通骁龙430系列-MSM8937 ( Cortex-A53架构)
- win10 安装redis 解压版
- 模拟电子技术基础_常用半导体器件
- 如何成为一名优秀的数据工匠?
- 简单实现RPC/RMI框架
- 利用Excel绘制超好看的直方图与正态分布曲线
- U盘装Win11教程 系统之家装机教程
- xutils的bitmap的深度使用
- JavaScript笔记(狂神说)
- 让用户输入一个三位数(若不是三位数则提示错误),判断该数是否是水仙花数。(水仙花数:每一位上的数字的立方和,等于该数本身)
- 『注册中心』Consul微服务注册中心的使用及相关集群搭建
- JVM源码系列:JVM内部运行之Class的Method
- 计算机科学上课带电脑,985 高校计算机系学生都在用的笔记本,我被深深地种草了!...
- WSL安装TexLive
热门文章
- 软件测试工作交接文档模版,软件测试岗位人员离职文档交接
- android协同开发平台,开发协作平台
- 美通企业日报 | 英特尔百度签署新合作备忘录;佛山照明与阿里云战略合作物联网生态...
- 关于城市照明的大局观
- 揭开银行U盾的秘密---签发CA证书:单向认证+双向认证(含java代码)
- 红帽linux64系统下载,红帽rhel6.5下载
- 【2022-10-19】让Mac QQ自带截图软件单独运行 / 节省大量系统内存 / 快捷截图 / ScreenCapture QQ/ QQ jietu plugin
- 刺客信条3一直显示育碧服务器,刺客信条3免Uplay启动游戏的方法
- 查看linux系统日志某一天,linux系统日志查看
- 计算机网络 以太网 和令牌环网