PerlWord下载.docx

上传人:b****6 文档编号:17247113 上传时间:2022-11-29 格式:DOCX 页数:50 大小:41.80KB
下载 相关 举报
PerlWord下载.docx_第1页
第1页 / 共50页
PerlWord下载.docx_第2页
第2页 / 共50页
PerlWord下载.docx_第3页
第3页 / 共50页
PerlWord下载.docx_第4页
第4页 / 共50页
PerlWord下载.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

PerlWord下载.docx

《PerlWord下载.docx》由会员分享,可在线阅读,更多相关《PerlWord下载.docx(50页珍藏版)》请在冰豆网上搜索。

PerlWord下载.docx

  双引字符串(double-quotedstring):

就是用双引号括起来的一串字符,其作

用类似于C语言。

  双引字符串中反斜杠转义表

  结构  含义

  \n  换行

  \r  回车

  \t  水平置表符

  \f   换页符

  \b  退格

  \v  垂直置表符

  \a  响铃

  \e  Esc

  \007 任一八进制ASCII值(这里007表示bell)

  \x7f 任一十六进制ASCII值

  \cC  任一“控制”字符

  \\  反斜杠

  \"

  双引号

  \l  下一字母小写

  \L  以后所有字母小写直到\E

  \u  下一字母大写

  \U  以后所有字母大写直到\E

  \E  结束\L和\U

  标量变量的运算符

  1、赋值运算符

  如:

$a=23;

#将23赋值给$a

  $b=$a=23;

#将23赋值给$a和$b

  $b=3+($a=2);

#将2赋值给$a,再加3将值赋给$b,即$b为5

  2、二元赋值运算符

$a=+3;

#等同于$a=$a+3

  这与C语言中基本相同。

  3、自增自减运算符

$a++;

#等同于$a=$a+1

  4、chop()运算符

$a="

hello"

;

  chop($a);

#此时$a的值为"

hell"

  这对于从屏幕获取文本后去除换行符很有用。

$a=;

#获取文本

#去除最后的换行符。

  这两行可合并为:

  chop($a=);

  5、字符串的标量插入值

zmd"

  $b="

hello!

$a"

  $b的值为"

zmd"

  综合示例

  $url1='

hello'

#将hello这串字符赋给$url1变量;

  $url2='

don\'

t'

#将don'

t这串字符赋给$url2变量;

  $url3='

hello\n'

#将hello\n这串字符赋给$url3变量;

注意\n不被当作换行

符而是\和n两个字符;

  $url1="

#将这串字符赋给

$url1变量;

  $url2="

/cgi-bin/"

#将/cgi-bin/这个字符赋给$url2变量;

  $url3=$url1.$url2;

#将两个变量的字符串连起,

  $url3="

  $int=5;

#将10赋给$int变量;

  $int=5+6;

#$int=11;

  $int=5*6;

#$int=30;

$int++;

#$int=6;

$int+=8;

#$int=13;

  $a="

\Uzmd"

$b="

\u\LZHENG"

$c="

$a$b"

#$a="

ZMD"

$b="

Zheng"

  $c="

ZMDZheng"

(2)Perl变量

(2)--数组

  数组是标量数据的有序列表。

  数组可以含任意多个元素。

最小的数组可以不含元素,而最大的数组可以占满

全部可用内存。

  数组实量(arrayliteral)是位于括号内用逗号分开的一系列值。

  (1,2,3,4,5)#具有1,2,3,4,5五个数值的数组

  ("

1974,173.5)#具有"

1974,173.5三个数值的数组

  ()#空数组

  ($a,5)#两个数值:

$a的值和5

  ($a+$b,6)#两个数值

  数组变量具有单独的数组值,要以@打头而不是$。

  @zmd

  注意@zmd与$zmd没任何联系。

Perl为对象的不同类型保留独立的命名空间。

  数组的赋值和标量赋值一样,也用等号表示。

Perl根据赋值对象是标量还是数

组变量来确定赋值操作是标量赋值还是数组赋值。

  若数组实量中只含有变量引用(不是表达式),则此数组实量也可作为变量使用

它可以用在赋值运算符的左边。

例如:

  ($a,$b,$c)=(1,2,3)#将1赋给$a,2赋给$2,3赋给$3

  如果把数值变量赋给标量变量,则赋给标量变量的就是数组长度,如:

  @zmd=(1,2,3)#将(1,2,3)赋给@zmd

  $a=@zmd#$a为3,即@zmd的数组个数

  数组元素的访问和C语言中类似,下标是按顺序整数排列的,编号从0开始。

综合举例

  @user1=("

"

cxm"

);

#将zmd和cxm两个字符串赋给@user1

  @user2=@user1;

#这时@user2=@user1=("

  @user3=("

zk"

@user1);

#这时@user3=("

  ($one,@user4)=@user3;

#这时$one="

  @user1=();

#把@user1清空

  @int1=(1,2,3,4,5);

$x=@int1;

#将数组@int1的个数赋给$x纯变量,$x=5

  $x=$#int1;

#$#这个变量返回数组最后个数的值(index)$x=4

  ($x)=@int1;

#$x等于数组的第一个个数值$x=1

  $b=$int1[0];

#$b等于数组的第一个元素值$b=1

  $c=@int1[0];

#$c同上$c=1,因些呼叫数组中值有两种方法

  $int1[0]=3;

#将3这个数值赋给数组@int的第一个元素@int1=(3,2,3,4,5)

  $int1[0,1]=[7,8];

#将7赋给数组的第一个元素将8赋给数组第二个元素

@int1=(7,8,3,4,5)

  @int1[0,1]=@int1[1,0];

#将数组前两个元素交换@int1(8,7,3,4,5)

  ($int1[0],$int1[1])=($int1[1],$int1[0]);

#同上@int1=(8,7,3,4,5)

  @int2=@int1[0,1];

#int2=(8,7)

  $int1[5]=6;

#将6赋给数组中第六个元素@int1=(1,2,3,4,5,6)

(3)Perl变量(3)--关联数组

  关联数组和前面说的数组类似,它包含标量数据,可用索引值来单独选择这些

数据,和数组不同的是,关联数组的索引值不是非负的整数而是任意的标量。

些标量称为Keys,可以在以后用于检索数组中的数值。

  关联数组的元素没有特定的顺序,你可以把它们想象为一组卡片。

每张卡片上

半部分是索引而下半部分是数值。

  关联数组是Perl语言中特有的,关联数组是一个功能强大的数组。

使用关联数

组时要在前面加上%号,关联数组的格式如:

  %ARRAY=(key1,value1,key2,value2,key3,value3);

  每一个key都有一个相对应的值(value)。

  和数组类似,$zmd,@zmd,%zmd之间没有任何联系。

Perl为对象的不同类型保留

独立的命名空间。

  下面介绍关联数组的操作:

  在关联数组中增加、更改一对数据:

ARRAY={key}=value;

在关联数组ARRAY中

加上一对key-value,要在关联数组名称前加上$号,而且key的名称要在{}符号之间

,最后再指定key所对应的value值。

如果在这个关联数组中已经有这个key了.就会

更改这个key所对应的value。

  keys(%array)操作符可生成由关联数组%array中的所有当前关键字组成的列表

即返回奇数个元素(第1,3,5,7...个)的列表。

  values(%array)操作符返回由关联数组%array中所有当前值组成的列表,即返

回偶数个列表。

  echo(%array)操作符返回由一个关键字和一个值对构成的两个元素的表。

对同

一数组再操作时返回下一对值直至结束。

若没有更多的对时,echo()返回空表。

(这在打印全部列表中很有用)

  删除一对在关联数组中的数据:

delete$ARRAY{key};

delete是Perl所提供

的函数,作用是删除关联数组中的一个key以及这个key所对应的value。

使用方

法是在delete函数之后,指定关联数组中要删除的key名称。

关联数组的综合举例:

  %fred=(one,"

two,"

$a=$fred{one};

---#$a等于"

  $b=$fred{two}---#$b等于"

  $fred{two}="

yes"

---#%fred=(one,"

  @number=keys(%fred)---#@list=(one,two)

  @user=values(%fred)---#@user=("

  ($number,$name)=each(%fred)---#此时$number的值为one,$name的值为

再执行一次$number为值为two,$name的值为"

  @a=%fred---#将关联数组fred指定给数组a,这时@a=(one,"

two,

  %b=@a---#将数组a指定给关联数组b,这时%b=(one,"

  delete$fred{one}---#将关联数组中key值为one的一对key-value删除,这时

%fred=(two,"

  %name=()---#把%name关联数组置空

(4)Perl的运算符号字符

  赋值(Assignment)运算符

  算术(Arithmetic)运算符

  数值(NumericValues)关系运算符

  字符串(StringValues)关系运算符

  逻辑(Logical)运算

  其它常用的运算符

  常用的文件数据(Filetest)运算符

符号    范例     说明

=     $x=$y;

  将$x的值指派给$y

+=    $x+=$y;

     $x=$x+$y;

  将$x加$y之后再指派给$x

-=    $x-=$y;

     $x=$x-$y;

  将$x减$y之后再指派给$x

*=    $x*=$y;

     $x=$x*$y;

  将$x乘$y之后再指派给$x

/=    $x/=$y;

     $x=$x/$y;

  求出$x除以$y之后的商数,再指派给$x

**=    $x**=$y;

     $x=$x**$y;

  将$x乘上$y次方之后再指派给$x

%=    $x%=$y;

     $x=$x%$y;

  求出$x除以$y的余数以后,再指派给$x

.=   $str1.=$str2;

  $str1=$str1.$str2;

将$str1这个字符串再加上$str2这个字符串之后,

            再指派给$str1这个字符串

x=   $strx=$y;

    $str=$strx$y;

  重复$str字符串$y次,并反结果指派给str这个字符串

符号范例说明

+$z=$x+$y将$x和$y相加之后,再将结果指派给$z

-$z=$x-$y将$x减掉$y之后,再将结果指派给$z

*$z=$x*$y将$x和$y相乘之后,再将结果指派给$z

/$z=$x/$y将$x除以$y之后,再将商数指派给$z

%$z=$x%$y将$x除以$y之后,再将余数指派给$z

**$z=$x**$y将$x乘以$y之后,再将结果指派给$z

++$x++;

++$x;

如同$x=$x++1;

将$x加一以后再将结果指派给$x

--$x--;

--$x;

如同$x=$x-1;

将$x减一以后再将结果指派给$x

.$z=$x.$y;

将$x字符串和$y字符串连接之后,再将结果指派给$z

>$x>$y如果$x大于$y,返回1的值,否则返回0

>=$x>=$y如果$x大于等于$y,返回1的值,否则返回0

<$x<$y如果$x小于$y,返回1的值,否则返回0

<=$x<=$y如果$x小于等于$y,返回1的值,否则返回0

==$x==$y如果$x等于$y,返回1的值,否则返回0

!

=$x!

=$y如果$x不等于$y,返回1的值,否则返回0

<=>$x<=>$y如果$x大于$y,返回1的值,如果$x等于$y,否则返回0;

&

127;

如果

$x小于$y,则返回-1的值

gt$str1gt$str2如果$str1大于$str2,返回1的值,否则返回0

ge$str1ge$str2如果$str1大于等于$str2,返回1的值,否则返回0

lt$str1lt$str2如果$str1小于$str2,返回1的值,否则返回0

le$str1le$str2如果$str1小于等于$str2,返回1的值,否则返回0

eq$str1ep$str2如果$str1等于$str2,返回1的值,否则返回0

ne$str1ne$str2如果$str1不等于$str2,返回1的值,否则返回0

cmp$str1cmp$str2如果$str1大于$str2,返回1的值,如果$str1等于$str2,返回

0,如果$str1小于$str2,则返回-1的值

1$x&

$y(And)

$x$y结果

真(True)真(True)真(True)

真(True)假(False)真(True)

假(False)真(True)假(False)

假(False)假(False)假(False)

2$x||$y(Or)

假(False)真(True)真(True)

3$x(Not)

$x结果

真(True)假(False)假(False)真(True)

其它常用的运算符

指令:

..区块运算符(RangeOperator)

说明:

这个运算符是Perl语言中特有的运算符,是一个很实用的运算符.

范例:

@digits=(1..9);

#此时@digits=(1,2,3,4,5,6,7,8,9);

@digits=('

01'

..'

05'

#此时@digits=(01,02,03,04,05);

@char=('

A'

E'

#此时@char('

'

B'

C'

D'

);

@total=(1..3,'

#此时@total=(1,2,3'

判别运算式?

运算1:

运算式2条件运算符(ConditionalOperator)

这个语法的意义和C语言一样,如果判别运算式的值是真(True)的话,则做运

算,1的运算,如果判别运算式是假(False)的话,则做运算式2的运算.

$price=($age>60)?

100:

200;

如果$age大于60的话,则$price等于100,否则$price等于200.

常用的文件数据(Filetest)运算符

范例说明

-r$file如果$file是可读取的话,返回1的值

-w$file如果$file是可写入的话,返回1的值

-x$file如果$file是可执行的话,返回1的值

-e$file如果$file存在的话,返回1的值

-o$file如果$file是被执行才所拥有的话,返回1的值

-s$file返回$file的文件大小(bytes)

-f$file如果$file是正常文件的话,返回1的值

-T$file如果$file是文本文件的话,返回1的值

-B$file如果$file是Binary文件的话,返回1的值

-M$file返回$file文件最后一次更改时间到现在的日期数

(5)Perl的基本输入输出

  从STDIN输入

  从标准输入设备读取数据是很容易的,我们已经从第一课上就使用<STDIN>

操作符了。

  $name=<STDIN>;

  在数组环境中,可把所有剩余的行作为一列表返回。

  @name=<STDIN>;

  此时,需要读入多行,然后再对各行分别处理。

通常做法是:

  while($_=<STDIN>){

  chop($_);

  #处理$_(每一行)

  }

  上述程序可简化为:

  while(<STDIN>){

  chop;

#等同于chop($_)

  处理$_(每一行)

  因为$_是许多操作符的缺少变量。

  从<>输入

  读取输入的另一种方法是使用<>。

<>是从Perl程序命令行所指定的文件中

读取数据。

例如有个文件名为pro1的程序:

  #!

/usr/bin/perl;

  while(<>){

  print$_;

  在UNIX环境中运行:

  pro1file1,file2,file3

  此时,将依次读入文件file1,file2,file3中的每一行,然后显示输出。

  向STDOUT输出

  Perl用print和printf向标准输出设备输出。

  print操作符使用字串列表作为参数,依次把每个字符串发送给标准输出,在

发送时不插入或改变任何字符。

  print"

网上学园"

."

欢迎您!

#打印"

网上学园欢迎您!

  print1+2,"

你好"

3你好"

  printf操作符用于格式化输出,在C语言中有相同的功能。

它使用一个参数表

,第一个参数是格式控制字符串,它定义了如何打印其余参数。

  printf"

%10s%8d%8.2f\n"

$a,$b,$c

  它的打印结果为:

10个字符宽度的$a,空格,8个字符宽度的整数$b,8个字符

宽度且包含两位小数的浮点数$c,最后换行。

  注意:

与前面操作符相类似,printf()的括号可以省略。

(6)perl控制结构

(1)-判断控制

  选择性控制结构包括if和unless语句,类似于C语言中的if。

  首先介绍一下真和假的定义。

在Perl中,这些规则有些难以理解。

控制表达式

的值为空串或0时,则表达式为假,对于其它任何情况,表达式的值都为真。

00"

不是空串或0,值为真。

0.0"

也是如此。

  指令:

if假如

  语法一:

  if(判别运算式)

  {

  表达式为真时的语句块;

  上个语法在Perl中也可以写成:

  表达式为真时的语句块if(判别运算式);

  范例:

  print"

请输入您的分数?

n"

  $scorre=<STDIN>;

#<STDIN>代表标准输入,会让使用者输入一字符串

  chop($score);

#将$score最后一个换行字符n删除掉

  if($score>=60){

您的分数及格了!

  也可以写成:

print"

if($score>=60);

  语法二:

  if(判别运算式一)

{判别式一为真时的语

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1