
58
|
第
3
章
qw{
/usr/dict/words
/home/rootbeer/.ispell_english
}
如果只能以
/
作为定界符的话,上面这样的文件名列表就会变得相当难读,难以维
护,甚至引入错误。
列表的赋值
就像标量值可被赋给变量一样,列表值也可以被赋给变量:
($fred, $barney, $dino) = ("flintstone", "rubble", undef);
左侧列表中的三个变量会依次被赋予右侧列表中对应的值,相当于我们分别做了三次
独立的赋值操作。因为列表是在赋值运算开始之前建立的,所以在
Perl
里交换两个变
量的值相当容易:
($fred, $barney) = ($barney, $fred); #
交换这两个变量的值
($betty[0], $betty[1]) = ($betty[1], $betty[0]);
如果等号左边的变量个数不等于右边值的个数,会发生什么情况?对列表赋值时,多
出来的值会被悄悄忽略掉——
Perl
认为:如果你真的想要将这些值存放起来的话,你
必然会先告知存储位置。另一种情况,如果变量的个数多过给定列表值的个数,那多
出来的变量将会被设成
undef
(或者空列表,稍后解释):
($fred, $barney) = qw< flintstone rubble slate granite >; #
忽略掉末尾两个元素
($wilma, $dino) = qw[flintstone]; # $dino
的值为
undef ...