我一直在使用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;