变量是存储在内存中的数据,创建一个变量即会在内存上开辟一个空间。解释器会根据变量的类型决定它在内存中的存储空间。
Perl为每个变量类型设置了独立的命令空间,所以不同类型的变量可以使用相同的名称。
创建变量
变量不需要显式的声明类型,在变量赋值后,解释器会自动分配匹配的类型空间。
可以在变量中使用use strict语句让所有变量需要强制声明类型。
标量变量
标量是一个单一的数据单元。数据可以是整数、浮点数、字符、字符串、段落等。
$age = 25;
$name = "runnoab";
$salary = 1445.0;
print "Age = $age\n";
print "Name = $name\n";
print "Salary = $salary\n";
数组变量
数组是用于存储一组有序的标量值的变量。数组以@开始。要访问数组可以使用$加变量名,并指定下标来访问。
@ages = (25, 30, 40);
@names = ("google", "runnob", "taobao");
print"\$ages[0] = $ages[0]\n";
print"\$ages[0] = $ages[2]\n";
print"\$names[0] = $names[1]\n";
哈希变量
哈希是一个key/value对 集合。哈希以%开始。如果要访问哈希值,可以使用$+{key}的格式来访问。
%dictionaries = ('google', 45, 'runnob', 30, 'taobao', 25);
print"\$dictionaries{'google'} = $dictionaries{'google'}\n";
print"\$dictionaries{'runnob'} = $dictionaries{'runnob'}\n";
print"\$dictionaries{'taobao'} = $dictionaries{'taobao'}\n";
变量上下文
上下文指的是表达式所在的位置。上下文是由等号左边的变量类型决定的,等号左边是标量则标量是上下文,等号左边是列表则列表时上下文。Perl解释器会根据上下文来决定变量类型。
@names = ("google", "runnob", "taobao");
@copy = @names; #将names数组全部复制给copy。
$size = @names; #数组赋值给标量,返回数组中的元素个数。
序号 | 上下文描述 |
---|---|
1 | 标量:赋值给一个标量变量,在标量上下文的右侧计算。 |
2 | 列表:赋值给一个数组或哈希,在列表上下文的右侧计算。 |
3 | 布尔:布尔上下文是一个简单的表达式计算,查看是否为true或false。 |
4 | Void:这种上下文一般不需要关系返回什么值,一般不需要返回值。 |
5 | 插值:这种上下文只发生在引号内。 |
网友评论