一、变量命名
一开始也是讲变量的命名规则,变量的命名以字母或下划线开头,可以由字母、数字或下划线组成。另外,变量名是区分大小写的,例如:$Fred和$fred是两个不同的变量。
需要注意的是,变量的名称前总要有个'$'符号。
同其它编程语言一样,在对变量命名时也需要选择一个恰当的名字,以便增加程序的可读性。
二、变量的赋值
Perl同其它语言一样,变量的赋值操作也采用等号'=',例如:
$fred = 17; # 变量fred值为17
$barney = 'hello'; # 变量barney值为字符串'hello'
$barney = $fred + 3; # 变量barney值为17 + 3 = 20
$barney = $barney * 2; # 变量barney值为20 * 2 = 40
三、复合赋值操作符
同其它语言一样,Perl也支持复合赋值操作符,例如:
$fred = $fred + 5;
等同于:
$fred += 5;
总结:从上面可以看出,在Perl编程中,变量无类型;而且变量无需遵循先定义再使用这个规则。
四、关于字符串变量
在双引号字符串中引用变量会替换成变量的值,例如:
$meal = "brontosaurus steak";
$barney = "fred ate a $meal"; # $barney的值为"fred ate a brontosaurus steak"
$barney = 'fred ate a ' . $meal;# $barney值同上面完全一样
如果变量没有被赋值过,则以空字符串代替,例如:
$barney = "fred ate a $meal"; # $barney值为"fred ate a "
如果要输出一个变量的值,则不需要加上双引号,例如:
print "$fred"; # 此双引号完全是多余的,可以直接使用print $fred这种写法
如果要输出'$'符号怎么办,可以在'$'符号前面加上'\',例如:
$fred = 'hello';
print "The name is \$fred.\n"; # 则直接会输出The name is $fred.
print 'The name is $fred' . "\n";# 效果同上面完全一样
从上面程序中也可以看出,在单引号字符串中并不会引用变量的值,这是同双引号字符串的不同之处。
在引用变量时,Perl会尽可能的使用最长且合法的变量名,所以说在引用变量后面直接跟上字母、下划线或数字时可能会出现意想不到的结果,解决办法很简单,同Shell一样,给引用的变量加上花括号,例如:
$what = "brontosaurus steak";
$n = 3;
print "fred ate $n $whats.\n"; # 此时引用的变量是$whats,为空
print "fred ate $n ${what}s.\n"; # 引用的是变量$what
print "fred ate $n $what" . "s.\n"; # 或者采用这种写法,也能得到正确的结果
print 'fred ate ' . $n . ' ' . $what . "s.\n"; # 更复杂的写法