Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^8: Why eval $version?

by syphilis (Archbishop)
on Jul 10, 2020 at 00:27 UTC ( [id://11119115]=note: print w/replies, xml ) Need Help??


in reply to Re^7: Why eval $version?
in thread Why eval $version?

it's no surprise that string comparison will often fail on numbers! Just try sort 8..12 to see what I mean

Yes - and that's the reason we compare them in numeric context.

It's just that if I assign a version as "2.30" I like it to print as "2.30", not "2.3".
Otherwise I would have saved myself the keystroke and assigned "2.3".
And to check on that, I generally run a test that $VERSION eq "2.30" - which of course fails if I eval $VERSION.

As I said, it's not a big deal.
It annoys me that the string I assigned is being changed ... so I simply avoid the procedure.

Cheers,
Rob

Replies are listed 'Best First'.
Re^9: Why eval $version?
by LanX (Saint) on Jul 10, 2020 at 01:10 UTC
    Frankly, both string and float are crippled concepts here and all those problems stem from bad compromises on the expanse of boilerplating and tribal knowledge.

    What we really want and need is a tuple of integers, which stringifies to a dotted number and compares numerically.

    I'm going to have a look at this version object tomorrow to see if it does the right overloads.

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery

      What we really want and need is a tuple of integers, which stringifies to a dotted number and compares numerically

      Well, I neither need nor want that wrt perl modules - but if others do, then so be it.
      I'm quite happy just doing our $VERSION = "x.yz" where x, y and z are decimal digits.
      I could just as happily extend that spec to our $VERSION = "X.Y" where both X and Y consist only of (one or more) decimal digits, and the length of the string being assigned to $VERSION is no greater than 16.

      Cheers,
      Rob

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11119115]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (3)
As of 2024-04-25 23:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found