分类: PERL
2014-01-07 21:05:09
1.3.1 问题描述
希望交换两个表里变量的值,但是不想通过临时变量来实现
1.3.2 解决方案
使用列表赋值对变量出新排序
($VAR1, $VAR2) = ($VAR2, $VAR1);
1.3.3 讨论
当需要交换两个变量的值时,大多数编程语言需要一个中间步骤:
$temp = $a;
$a = $b;
$b = $temp;
但是在Perl中完全不用如此:
$a = "alpha";
$b = "omega";
($a, $b) = ($b, $a); # $a=”omega”,$b=”alpha”
不仅如此,用同样的方式可以完成多个变量值得交换
($alpha, $beta, $production) = qw(January March August);
# move beta to alpha,
# move production to beta,
# move alpha to production
($alpha, $beta, $production) = ($beta, $production, $alpha);
当以上代码完成后,$alpha, $beta, 和 $production的值分别变成“March”,“August”,和“January”
1.3.4 其他
该部分内容可参阅perldata(1)的List Value constructors 和Programming Perl 第二章的的List Values and Array的内容