Perl比较运算符和字符串的“数字”

前端之家收集整理的这篇文章主要介绍了Perl比较运算符和字符串的“数字”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在使用perl工作很多,但是我仍然不知道如何使用“number”表示字符串“数字”上的<,>,> =,=<,ne,gt等.像:'1.4.5.6.7.8.0' 纠正我如果我错了,以下返回true:
if ('1.4.5' > '8.7.8');

因为两者都将被强制为true(不是一个空字符串).
但是,gt等字符串运算符对这样的数字有何作用?

基本上我试图比较由以下形式组成的版本号:

1.3.4.0.2

我可以对每个数字进行数字比较,但之前,我还想知道
字符串比较运算符对这些字符串执行.

谢谢,

解决方法

首先:请一直使用警告.您将立即意识到以下几点:
$perl -wle 'print 1 unless "1.4.5" > "8.7.8"'
Argument "8.7.8" isn't numeric in numeric gt (>) at -e line 1.
Argument "1.4.5" isn't numeric in numeric gt (>) at -e line 1.

Perl v5.9.0分发了version.这个模块比较版本号很容易:

use warnings;
use version;

my ($small,$large) =  (version->parse('1.4.5'),version->parse('8.7.8'));

print "larger\n"    if $small > $large;
print "smaller\n"   if $small < $large;

猜你在找的Perl相关文章