Perl中的变量用于在整个程序中存储和操作数据。当创建一个变量时,它会占用内存空间。变量的数据类型帮助解释器分配内存并决定在保留内存中存储什么。因此,变量可以存储整数、小数或字符串,并将不同的数据类型赋值给变量。
变量命名
可以使用特定的数据类型将Perl中的变量命名为任何名称。命名变量时要遵循一些规则:
Perl中的变量区分大小写。
例子:
$John and $john are two different variables
根据所需的数据类型, 它以$, @或%开头, 然后是零个或多个字母, 下划线和数字
Perl中的变量不能包含空格或下划线以外的任何其他特殊字符。
例子:
$my-name = "John"; //Invalid
$my name = "John"; //Invalid
$my_name = "John"; //Valid
变量声明
变量声明是根据用于定义变量的数据类型完成的。这些变量可以具有三种不同的数据类型:
标量变量:
它包含单个字符串或数字值。它以$符号开头。
语法:$ var_name = value;
例子:
$item = "Hello"
$item_one = 2
数组变量:
它包含一组随机排序的值。它以@符号开头。
语法:@var_name =(val1, val2, val3, …..);
例子:
@price_list = (70, 30, 40);
@name_list = ("Apple", "Banana", "Guava");
哈希变量:
它包含每个键有效访问的(键, 值)对。它以%符号开头。
语法:@var_name =(val1 = key1, val2 = key2, val3 = key3, …..);
例子:
%item_pairs = ("Apple" =>2, "Banana'=>3);
%pair_random = ("Hi" =>8, "Bye"=>9);
变量的修改
Perl允许在变量声明完成后随时修改其变量值。有多种修改变量的方法:
标量变量可以简单地通过重新定义其值来修改。
例子:
$name = "John";
# This can be modified by simply
# redeclaring the variable $name.
$name = "Rahul";
可以通过将数组的元素的索引传递给数组并为其定义新值来修改数组的元素。
例子:
@array = ("A", "B", "C", "D", "E");
# If value of second variable is to
# be modified then it can be done by
@array[2] = "4";
# This will change the array to, # @array = ("A", "B", "4", "D", "E");
哈希中的值可以使用其键进行修改。
例子:
%Hash = ("A", 10, "B", 20, "C", 30)
# This will modify the value
# assigned to Key 'B'
$Hash{"B"} = 46;
可变插值
Perl提供了各种方法来将String定义为变量。这可以通过使用单引号, 双引号, 使用q-operator和double-q运算符等来完成。
使用单引号和双引号编写字符串是相同的, 但是它们的工作方式之间存在细微差别。用单引号引起来的字符串将完全按原样显示写入其中的内容。
例子:
$name = "John"
print 'Hi $name\nHow are you?'
上面的代码将打印:
Hi $name\nHow are you?
而用双引号引起来的字符串将变量替换为其值, 然后显示该字符串。它甚至通过实际使用替换了转义序列。
例子:
$name = "John"
print "Hi $name\nHow are you?"
上面的代码将打印:
Hi John
How are you?
示例代码:
#!/usr/bin/perl
use Data::Dumper;
# Scalar Variable
$name = "lsbin" ;
# Array Variable
@array = ( "G" , "E" , "E" , "K" , "S" );
# Hash Variable
%Hash = ( 'Welcome' , 10, 'to' , 20, 'Geeks' , 40);
# Variable Modification
@array [2] = "F" ;
print "Modified Array is @array\n" ;
# Interpolation of a Variable
# Using Single Quote
print 'Name is $name\n' ;
# Using Double Quotes
print "\nName is $name" ;
# Printing hash contents
print Dumper(\ %Hash );
输出如下:
Modified Array is G E F K S
Name is $name\n
Name is lsbin$VAR1 = {
'to' => 20, 'Welcome' => 10, 'Geeks' => 40
};