=,= '8.7.8'); 因为两者都将被强制为真(不是空字符串)。 但是,ne,gt 怎么样?等字符串运算符在这些数字上工作吗? 基本上我正在尝试-6ren">
gpt4 book ai didi

string - Perl比较运算符和字符串化 "numbers"

转载 作者:行者123 更新时间:2023-12-04 02:37:02 27 4
gpt4 key购买 nike

我最近一直在使用 perl,但我仍然不知道如何 <,>,>=,=<, ne,gt等。关于字符串化的“数字”,“数字”我的意思是:'1.4.5.6.7.8.0'

纠正我如果我错了,以下返回真:

if ('1.4.5' > '8.7.8');

因为两者都将被强制为真(不是空字符串)。
但是, ne,gt 怎么样?等字符串运算符在这些数字上工作吗?

基本上我正在尝试比较由以下形式组成的版本号:
1.3.4.0.2

我可以对每个数字进行数值比较,但在此之前,我想知道
字符串比较运算符对此类字符串执行。

谢谢,

最佳答案

第一:请use warnings每时每刻。您会立即意识到以下几点:

$ 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;

关于string - Perl比较运算符和字符串化 "numbers",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9941891/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com