1.1.1 提出问题
你想要交换两个变量的值,但有不想使用临时变量
1.1.2 解决方案
给有不同变量顺序的列表赋值:
($VAR1, $VAR2) = ($VAR2, $VAR1);
1.1.3 讨论
大多数程序语言在交换两个变量的值的时候都需要一个中间的过程,比如:
$temp = $a; $a = $b; $b = $temp;
|
但是在perl中不会这样,perl会跟踪赋值语句的两边,保证你不会偶尔丢失任何值,这样就不用临时值了:
$a = "alpha"; $b = "omega"; ($a, $b) = ($b, $a); # the first shall be last -- and versa vice
|
你甚至可以一次交换更多的值:
($alpha, $beta, $production) = qw(January March August); # 移动 beta 到 alpha,
# 移动 production 到 beta,
# 移动 alpha 到 production
($alpha, $beta, $production) = ($beta, $production, $alpha);
|
这段代码完成的时候, $alpha, $beta, 和 $production 的值分别为 "March", "August", 和 "January"。
1.2.4 参考
这节中提到的有关“列表值构造器”的内容参考perldata(1),有关“列表值与数组”的内容请参考大骆驼书第二章。
阅读(282) | 评论(0) | 转发(0) |