Subject: | 1.65.1 is logically < 1.64 in perl version logic. |
perl -Mversion -e 'die if version->parse("1.64") < version->parse("1.65.1")'
Unfortunately, Perl interprets 1.64 as being similar to 1.640.0 and 1.65.1 is logically < 1.640.0
To simplify the logic:
1.64 is treated as a float, ie: 1.640000
1.65.1 is treated as 3 decimals, which when converted to float is 1.065.001 -> 1.065001
1.640000 > 1.065001
perl "-Mversion 0.77" "-MData::Dump pp" -e "pp [ version->parse(q{1.64}), version->parse(q{1.65.1}) ]"
[
bless({ original => 1.64, version => [1, 640] }, "version"),
bless({ original => "1.65.1", qv => 1, version => [1, 65, 1] }, "version"),
]
Easy solutions:
1. Forget 3-part and make the next release one of the following versions:
1.65 , 1.651 , 1.6501 , 1.65001 , 1.6500001
2. Translate to 3-part properly and release the next version as one of the following:
1.650.0 , 1.650.1 , 1.650.2
Thanks in advance. Sorry that versions are so annoying :(