Perl的语法-1

本文深入解析Perl编程的基础知识,包括语句、执行、变量与常量、选择控制等核心概念,详细介绍了每部分的关键点与实例应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

声明:本神奇的Perl系列为刘兴(http://deepfuture.iteye.com/)原创,

未经笔者授权,任何人和机构不能转载

 

 

单个语句用;表示结束,结构如下:

语句;注释

例如:

print “hello,word”;#输出hello,word

#表示后面的内容为注释。

1)语句块用{}包围。

2)一行可以有多个语句。

1.          

2.          

程序通常以pl结尾,如果是做为Apache容器中的cgi程序执行脚本,必须为脚本文件名提供.pl.cgi扩展名。

在命令行中输入:perl 程序名

 

1          

2          

3          

1.          

2.          

3.          

变量的表示非常简洁:
1)不要求变量有类型。
2)对于数组,采用以@后接变量名表示,比如@names。
3)对于保存单个值的变量,采用$后接变量名表示,称之为标量,比如$name。
4)对于哈希变量,采用%后接变量名表示。
5)变量在第一次赋值前有一个特殊值 undef,即没有任何值。

1) 变量可以不声明,直接使用。

2) 声明语法是:

作用域 变量名

1)变量前不加作用域限定,表示该变量为全局变量。

2)主要有my作用域和local作用域。

 my作用域主要用来声明局部变量。my声明的变量仅作用于声明该的层次及同一层次上定义的其它子程序。

 local作用域只影响声明的层次以及以内的层次,仅能在local作用域声明的层次及以内层次修改变量值。

 

预定义变量

用途

$_

在执行输入和模式搜索操作时使用的默认空格变量

$.

文件中最后处理的当前行号

$@

由最近一个eval()运算符提供的Perl语法报错信息

$!

获取当前错误信息值,常用于die命令

$0

获取当前执行脚本的程序名

$$

正在执行脚本的Perl进程号

$PERL_VERSION /z

Perl解释器的版本、子版本和修订版本信息

@ARGV

获取命令行参数列表

ARGV

一个特殊的文件句柄,用于遍历@ARGV中出现的所有文件名

@INC

库文件的搜索路径

@_

在子程序中,@_变量含有传给该子程序的变量内容

%ENV

关联数组型变量%ENV含有当前环境信息

%SIG

关联数组型变量%SIG含有指向信号内容的句柄

 

Perl中,选择控制包括ifunless,条件表达式值为空串或0时,为假, 否则为真。

1          

2          

3          

4          

表示如果为真。

语法一:

if(条件表达式)
{

表达式为真时的语句块;

}

或者为以下语法(注意不是语句块,是单个语句)

表达式为真时的语句块 if条件表达式;

范例1:

#perl0-1.pl

$x=1;

if ($x>0){

  print “ok”;

}

print “ok” if $x>0;#和本程序中的上一个if功能完全一样

范例2:

#perl0-2.pl

$x=1;

if ($x) {#条件表达式非0,即真

    print “x:yes\n”;

}

$y=0;

if ($y) {#条件表达式为0,即假

    print “y:yes\n”;

}

$z=0.0;

if ($z) {#条件表达式为0,即假,注意0.0也作为数值表达式等于0

    print “z:yes\n”;

}

$a=’0’;

if ($a) {#条件表达式为0,即假

    print “a:yes\n”;

}

$b=’00’;

if ($b) {#条件表达式非0,即真

    print “b:yes\n”;

}

$c=’0.0’;

if ($c) {#条件表达式非0,即真,注意’0.0’做为字符表达式不等于0

    print “c:yes\n”;

}

$d=’’;

if ($d) {#条件表达式为空串,即假

    print “d:yes\n”;

}

$e=’ ‘;

if ($e) {#条件表达式为一个空格,不为空串,即真

    print “e:yes\n”;

}

运行结果如下:

x:yes

b:yes

c:yes

e:yes

语法二:

if(条件表达式){

条件表达式为真时的语句块;

}else{

条件表达式为假时的语句块;

}

范例:

#perl0-3.pl

$x=5;
if($x>0)
{

print”正数!\n”;

}else{

print”0或负数!\n”;

}

运行结果如下:

正数!

语法三:

if (条件表达式一)
{

条件表达式一为真时的语句块;

}elsif(条件表达式二){

条件表达式二为真时的语句块;

}elsif(条件表达式三){

条件表达式三为真时的语句块;

}

elsif(条件表达式n){

条件表达式n为真时的语句块;

}else{

所有条件表达式为假时的语句块;

}

范例:

#perl0-4.pl

$x=<STDIN>;

chomp($x);

if($x>=10000)

{

  print”大于1万的正数!\n”;

}elsif ($x>0){

  print”小于1万的正数0!\n”;

}

elsif ($x==0){

  print”0!\n”;

}

else{

   print “负数!\n”;

}

运行几次程序,依次输入测试数字100300000-2000

Perl perl0-4.pl

100

小于1万的正数0!

Perl perl0-4.pl

300000

大于1万的正数!

Perl perl0-4.pl

-200

负数!

Perl perl0-4.pl

0

0!

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值