在perl中解析字符串中的负数

时间:2010-08-16 14:35:43

标签: perl parsing integer negative-number

如何从perl中解析字符串中的负数?我有这段代码:

print 3 - int("-2");

它给了我5,但我需要3。我该怎么做?

4 个答案:

答案 0 :(得分:8)

Perl会根据需要自动在字符串和数字之间进行转换;除非您确实想要将浮点数(无论是存储为数字还是存储在字符串中)转换为整数,否则不需要int()操作。所以你可以这样做:

my $string = "-2";
print 3 - $string;

得到5(因为3减负2 5)。

答案 1 :(得分:5)

嗯,3 - ( - 2)确实是5.我不确定你想要实现什么,但如果你想过滤掉负值,为什么不做这样的事情:

$i = int("-2")
$i = ($i < 0 ? 0 : $i);

这会将您的负值变为0,但让正数通过。

答案 2 :(得分:1)

似乎正确解析它。
3 - ( - 2) 5 如果错误地将-2解析为2那么它将输出3 - 2 = 1 无论你如何从3中加/减2,你都不会得到3.

答案 3 :(得分:1)

您可能正在考虑使用其他函数而不是'int'。

尝试:

 use List::Util qw 'max';

 ...

 print 3 - max("-2", 0);

如果你想获得3作为结果。

此致

RBO