+ -
当前位置:首页 → 问答吧 → perl中chomp的疑问

perl中chomp的疑问

时间:2011-04-25

来源:互联网

print "Please input radius:\n";
if ( chomp($radius = <STDIN>) < 0){
  $backinput = $radius;
  $radius = 0;
}
$girth = 2 * $radius * $pi;
print "Radius ".$backinput." girth is $girth \n";


运行过程如下:
Please input radius:
-12 #输入-12
Radius girth is -75.398223696 

从结果来看,if语句的条件判断为假。把上述程序改成
print "Please input radius:\n";
chomp($radius = <STDIN>);
if ( $radius < 0){
  $backinput = $radius;
  $radius = 0;
}
$girth = 2 * $radius * $pi;
print "Radius ".$backinput." girth is $girth \n";

运行结果:
Please input radius:
-12
Radius -12 girth is 0 

问题是为什么chomp放在if语句里时,条件判断为假。

作者: joneui   发布时间: 2011-04-25

看chomp的文档:

...It returns the total number of characters removed from all its arguments.

作者: panghuhu250   发布时间: 2011-04-26

一个判断的是chomp函数的返回值,一个判断的是用户输入的值,两个当然不一样了

作者: jiuchang   发布时间: 2011-04-26