Perl有三种变量:
- 纯变量(Scalar Varible)
- 数组(Array)
- 关联数组(Associative array)
一、纯量变量
使用纯量变量时要在前面加上$符号,
注意:指定的纯量变量是一个字符的话,就要加上""双引号;如果是数值的话,就不用加上""这个符号。
示例
|
$url1="http://jz-dev.hb.cninfo.net"; |
#将http://jz-dev.hb.cninfo.net这串字符赋给$url变量; |
|
$url2="/~rabbits/cgi-guide/"; |
#将/~rabbits/cgi-guide/这个字符赋给$url2变量; |
|
$url3=$url1.$url2; |
#将两个变量的字符串连起,
$url3="http://chu-source.yeah.net/"; |
|
$int=10; |
#将10赋给$int变量; |
|
$int=5+6; |
#$int=11; |
|
$int=5*6; |
#$int=30; |
|
$int=10;$int++; |
#$int=11; |
|
$int=10;$int+=8; |
#$int=18; |
二、数组
使用数组时要在前而@符号,下面是一些例子:
|
@username1=("mike","fly"); |
#将mike和fly两个字符串赋给@username1 |
|
@username2=@username1; |
#这时@username2=("mike","fly") |
|
@username3=("duan",@username); |
#这时@username3=("duan","mike","fly") |
|
($one,@username4)=@username3; |
#这时$one="duan" |
|
@username=(); |
#把@username1清空 |
|
@int=(1,3,5,7,9); $x=@int; |
#将一个数组赋给$x纯变量,且返回数组个数,这个$x=5 |
|
$x=$#int; |
#$#这个变量返回数组最后个数的值(index)$x=4 |
|
($x)=@int; |
#$x等于数组的第一个个数值$x=1 |
|
$b=$int[0]; |
#$b等于数组的第一个无素值$b=1 |
|
$c=@int[0]; |
#$c同上$c=1,因些呼叫数组中值有两种方法 |
|
$int[0]=2; |
#将2这个数值赋给数组@int的第一个元素@int=(2,3,5,7,9) |
|
$int[0,1]=[1,3]; |
#将1赋给数组的第一个元素将3赋给数组第二个元素@int=(1,3,5,7,9) |
|
@int[0,1]=@int[1,0]; |
#将数组前两个元素交换@int(3,1,5,7,9) |
|
($int[0],$int[1])=($int[1],$int[0]); |
#同上@int=(1,3,5,7,9) |
|
@data=@int[0,1]; |
#date=(1,3) |
|
$int[5]=11; |
#将11赋给数组中第六个元素@int=(1,3,5,7,9,11) |
三、关联数组
关联数组是由不同的纯变量组成。跟数组不同之处是在关联数中的单元是由成对的key-value组成,每一对
key都有相对应的值(value),这是Perl语言中特有的,关联数组是一个功能强大的数组。使用关联数组时要在前面加上%号,关联数组的格式如:
%ARRAY=(key1,value1,key2,value2,key3,value3);
每一个key都有一个相对应的值(value)。
- 在关联数组中增加、更改一对数据:ARRAY={key}=value;
在关联数组ARRAY中加上一对key-value,要在关联数组名称前加上$号,而且key的名称要在{}符号之间,最后再指定key所对应的value值。如果在这个关联数组中已经有这个key了.就会更改这个key所对应的value。
- 取出关联数组中key所对应的value: $get=$ARRAY{key};
取出在关联数组ARRAY中key所对应的value,要先在关联数组名称前加上$这个符号而且
key 的名称要在{} 符号之间,就会将key所对应的value取出来并指定给$get这个变量。
- 删除一对在关联数组中的数据:delete $ARRAY{key};delete 是
Perl 所提供的函数,作用是删除关联数组中的一个key以及这个
key 所对应的 value。使用方法是 在 delete
函数之后,指定关联数组中要删除的key名称。
下面是有关于一些关联数组的例子:
|
%name=(1,"one",2,"two"); $one=$name{1}; |
#$ONE等于"ONE" |
|
$two=$name{2}; |
#$TWO等于"TWO" |
|
$name{3}="third"; |
#增加一对KEY-VALUE到关联数组NAME中这时%NAME=(1,"ONE",2,"TWO"
#3,"THIRD") |
|
$name{3}="three"; |
#因为在关联数组中已经有3个KEY了,所以就会把KEY为3所对应的VAL-
#UE更改成THREE 这时%NAME=(1,"ONE",2,"TWO"3,"THREE") |
|
delete $name{3}; |
#将关联数组中key值为3的一对key-value删除,这时%NAME=(1,"ONE"
#,2,"TWO") |
|
@x=%name; |
#将关联数组NAME指定给数组X,这时@x=(1,"ONE",2,"TWO") |
|
%y=@x; |
#将数组X指定给关联数组Y 这时%Y=(1,"ONE",2,"TWO") |
|
%name=(); |
#把%name关联数组置空 |
|