开发手册 欢迎您!
软件开发者资料库

Perl - 变量

Perl变量 - 从简单和简单的步骤学习Perl,从基本到高级概念,包括简介,环境,语法,数据类型,变量,标量,数组,哈希,IF ... ELSE,循环,运算符,日期和时间,子例程,引用,格式,文件I / O,目录,错误处理,特殊变量,编码标准,正则表达式,发送电子邮件,套接字编程,面向对象,数据库访问,CGI编程,包和模块,流程管理,嵌入式文档,功能参考。

变量是存储值的保留内存位置.这意味着当你创建一个变量时,你在内存中保留了一些空间.

根据变量的数据类型,解释器分配内存并决定可以存储在保留内存中的内容.因此,通过为变量分配不同的数据类型,可以在这些变量中存储整数,小数或字符串.

我们已经了解到Perl具有以下三种基本数据类型 :

  • Scalars

  • 数组

  • 哈希

因此,我们将在Perl中使用三种类型的变量. 标量变量将以美元符号($)开头,它可以存储数字,字符串或引用. 数组变量将以sign@开头.它将存储有序的标量列表.最后, Hash 变量将以符号%开头,并将用于存储键/值对的集合.

Perl在单独的命名空间中维护每个变量类型.因此,您可以在不担心冲突的情况下,为标量变量,数组或散列使用相同的名称.这意味着$ foo和@ foo是两个不同的变量.

创建变量

Perl变量不必显式声明为保留内存空间.为变量赋值时,声明会自动发生.等号(=)用于为变量赋值.

请注意,如果我们使用使用严格

,则必须在我们使用之前声明变量b>我们程序中的语句.

=运算符左边的操作数是变量的名称,而=运算符右边的操作数是存储在变量.例如 :

$age = 25;             # An integer assignment$name = "John Paul";   # A string $salary = 1445.50;     # A floating point

这里25,"John Paul"和1445.50是分配给 $ age 的值, $分别名称 $ salary 变量.不久我们将看到如何为数组和散列分配值.

标量变量

标量是单个数据单位.该数据可以是整数,浮点数,字符,字符串,段落或整个网页.简单地说它可以是任何东西,但只是一件事.

这是一个使用标量变量和减号的简单例子;

#!/usr/bin/perl$age = 25;             # An integer assignment$name = "John Paul";   # A string $salary = 1445.50;     # A floating pointprint "Age = $age\n";print "Name = $name\n";print "Salary = $salary\n";

这将产生以下结果 :

Age = 25Name = John PaulSalary = 1445.5

数组变量

数组是存储标量值的有序列表的变量.数组变量前面有"at"(@)符号.要引用数组的单个元素,您将使用带有变量名的美元符号($),后跟方括号中元素的索引.

这是一个简单的示例使用数组变量 :

#!/usr/bin/perl@ages = (25, 30, 40);             @names = ("John Paul", "Lisa", "Kumar");print "\$ages[0] = $ages[0]\n";print "\$ages[1] = $ages[1]\n";print "\$ages[2] = $ages[2]\n";print "\$names[0] = $names[0]\n";print "\$names[1] = $names[1]\n";print "\$names[2] = $names[2]\n";

这里我们在$ sign之前使用转义符号(\)来打印它.其他Perl会将其理解为变量并打印其值.执行时,这将产生以下结果 :

$ages[0] = 25$ages[1] = 30$ages[2] = 40$names[0] = John Paul$names[1] = Lisa$names[2] = Kumar

哈希变量

哈希是一组键/值对.哈希变量前面有百分号(%)符号.要引用散列的单个元素,您将使用散列变量名称,后跟与大括号中的值关联的"key".

这是使用散列的简单示例变量 :

#!/usr/bin/perl%data = ('John Paul', 45, 'Lisa', 30, 'Kumar', 40);print "\$data{'John Paul'} = $data{'John Paul'}\n";print "\$data{'Lisa'} = $data{'Lisa'}\n";print "\$data{'Kumar'} = $data{'Kumar'}\n";

这将产生以下结果 :

$data{'John Paul'} = 45$data{'Lisa'} = 30$data{'Kumar'} = 40

变量上下文

Perl根据Context不同地处理相同的变量,即使用变量的情况.让我们检查以下示例 :

#!/usr/bin/perl@names = ('John Paul', 'Lisa', 'Kumar');@copy = @names;$size = @names;print "Given names are : @copy\n";print "Number of names are : $size\n";

这将产生以下结果 :

Given names are : John Paul Lisa KumarNumber of names are : 3

这里@ names是一个数组,已在两个不同的上下文中使用.首先,我们将其复制到任何其他数组,即列表,因此它返回所有元素,假设上下文是列表上下文.接下来我们使用相同的数组并尝试将此数组存储在标量中,因此在这种情况下,它返回此数组中的元素数量,假设上下文是标量上下文.下表列出了各种上下文 :

Sr.No.上下文&说明
1

标量

标量变量的赋值评估标量上下文中的右侧.

2

列表

对数组或散列的赋值会评估列表上下文中的右侧.

3

布尔

布尔上下文就是评估表达式的任何地方看它是真还是假.

4

无效

此上下文不仅不关心返回值是什么,甚至不需要返回值.

5

插值

此上下文仅发生在引号内,或类似引号的内容.