在Perl中是否有一种简单的方法可以让我确定给定的变量是否为数字?有点像:
if (is_number($x))
{ ... }
Run Code Online (Sandbox Code Playgroud)
会是理想的.当使用-w开关时不会发出警告的技术当然是首选.
Perl通常透明地将数字转换为字符串值,反之亦然.然而,必须有一些东西允许例如Data::Dumper区分两者,如下例所示:
use Data::Dumper;
print Dumper('1', 1);
# output:
$VAR1 = '1';
$VAR2 = 1;
Run Code Online (Sandbox Code Playgroud)
是否有Perl函数允许我以类似的方式区分标量的值是存储为数字还是字符串?
看起来字符串上下文(虽然是真实的,并且在"编程Perl"章节"2.7.1.标量和列表上下文"中作为标量上下文的子概念提到),但在我能够找到的任何地方都没有清楚地记录在Perldoc.
显然,Perl中的一些东西(例如eqoperator,或qq //引用插值)会将值强制转换为字符串上下文.
Perl什么时候强加字符串上下文?
perldoc似乎没有任何有用的答案.