Chinaunix首页 | 论坛 | 博客
  • 博客访问: 486860
  • 博文数量: 142
  • 博客积分: 4126
  • 博客等级: 上校
  • 技术积分: 1545
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-22 10:03
文章分类

全部博文(142)

文章存档

2011年(8)

2010年(7)

2009年(64)

2008年(63)

我的朋友

分类:

2008-12-10 11:19:07

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),有关“列表值与数组”的内容请参考大骆驼书第二章。

阅读(286) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~