是否有一种通用的方法来比较Perl中的数字和字符串?

时间:2011-07-13 02:48:24

标签: string perl numeric

众所周知,数字的比较使用不同的运算符来表示字符串。 那么在Perl中是否有通用的方法来比较数字和字符串? 在进行比较之前,我应该始终检查值是数字还是字符串? 我是Perl的新生。如果您有任何想法,请帮忙。 感谢。

4 个答案:

答案 0 :(得分:1)

嗯,通常你知道特定时间点特定变量的数据类型。你能解释一下你在想什么样的情况吗?

有些模块适用于复杂的版本号,可能有多个字符串/数字部分。 Sort::Naturally就是一个。

答案 1 :(得分:1)

除了已经提到的方法,使用perl时> 5.10.1,smart matching可以使用。具体来看参考表中的第29 .. 32行。如果一个操作数看起来像一个数字,则使用数字比较,否则回退到字符串。

答案 2 :(得分:0)

如果要在比较字符串时比较数字和字符串比较,则应使用数字比较。这就是它的全部内容。你可能会过度思考它。

如果确实需要测试字符串和数字相等,那么只需测试两者:

if ( ( $foo eq $bar ) && ( $foo == $bar ) )

答案 3 :(得分:0)

如有疑问,请使用eq。它也适用于数字。当你想要计算某些东西时,你只需要数字运算。

Perl会在需要时将数字转换为字符串,反之亦然,但是,并非所有字符串都可以用数字表示,所以你会得到一个警告和一个零值(当我们在它时:总是< / strong> use strict;use warnings;)。