+ -
当前位置:首页 → 问答吧 → perl 赋值 问题

perl 赋值 问题

时间:2010-12-10

来源:互联网

想请教一下这句中的? 和 : 是起什么作用?

       my $a = (defined($_[0]) ? $_[0] : \%b);

作者: lingg2010   发布时间: 2010-12-10

本帖最后由 只爱睡觉 于 2010-12-10 13:18 编辑

判断是否值是否已进行定义,如果第一个不匹配则输出第2个。
给个测试程序,方面理解。
  1. #!/usr/bin/perl
  2. my ($a,$b) = (6666,2222);
  3. $a = ($a >$b)?$a:$b;
  4. print $a;
复制代码

作者: 只爱睡觉   发布时间: 2010-12-10



QUOTE:
想请教一下这句中的? 和 : 是起什么作用?

       my $a = (defined($_[0]) ? $_[0] : \%b);
lingg2010 发表于 2010-12-10 13:08



相当于if的简化版.....
if(defined($_[0])){
  $a = $_[0];
}
else{
  $a = \%b;
}

作者: jason680   发布时间: 2010-12-10

啊,受教了,多谢。

作者: lingg2010   发布时间: 2010-12-10