如何判断变量在Perl中是否有数值?

前端之家收集整理的这篇文章主要介绍了如何判断变量在Perl中是否有数值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有一个简单的方法在Perl,将允许我确定一个给定的变量是数字的吗?类似的东西:
if (is_number($x))
{ ... }

将是理想的。当使用-w开关时,不会出现警告的技术当然是首选。

解决方法

使用Scalar :: Util :: looks_like_number(),它使用内部Perl C API的looks_like_number()函数,这可能是最有效的方法
注意,字符串“inf”和“无穷大”被视为数字。

例:

#!/usr/bin/perl

use warnings;
use strict;

use Scalar::Util qw(looks_like_number);

my @exprs = qw(1 5.25 0.001 1.3e8 foo bar 1dd inf infinity);

foreach my $expr (@exprs) {
    print "$expr is",looks_like_number($expr) ? '' : ' not'," a number\n";
}

给出此输出

1 is a number
5.25 is a number
0.001 is a number
1.3e8 is a number
foo is not a number
bar is not a number
1dd is not a number
inf is a number
infinity is a number

也可以看看:

[perldoc Scalar::Util][1]
[perldoc perlapi][2]
原文链接:https://www.f2er.com/Perl/173551.html

猜你在找的Perl相关文章