Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: eval $VERSION in modules?

by JadeNB (Chaplain)
on Jan 04, 2010 at 21:23 UTC ( #815647=note: print w/replies, xml ) Need Help??


in reply to eval $VERSION in modules?

A bit of Googling turns up 'eval' $ExtUtils::MakeMaker::VERSION to make it numeric. It doesn't seem like that'd be necessary in your case, but it's apparently idiomatic usage in some cases:

The added statement is the 'standard' method of handling development version numbers.

UPDATE: JavaFan points out that the possible is not the same as the good. I was not recommending this trick (in fact, I'd never seen it before), just trying to explain what it might mean.

Replies are listed 'Best First'.
Re^2: eval $VERSION in modules?
by JavaFan (Canon) on Jan 04, 2010 at 22:29 UTC
    But that's only useful if you don't control the assignment of $VERSION itself (like $ExtUtils::MakeMaker::VERSION). If you want to put a numerical value in a variable, then:
    our $var = 'string looking like a number'; $var = eval $var;
    is not the way to earn brownie points. Suggest that during a job interview with me, and I won't recommend to my boss to hire you. You want a number inside your variable? Omit the quotes, don't use eval:
    our $VERSION = 0.08;

      I was ignorantly cut-and-pasting; thanks for clarifying why the idiom is useful for ExtUtils::MakeMaker but not for most uses.

      I considered mentioning the quotes, but didn't, because I thought that Perl determined the ‘purpose’ of a scalar when it was used, not when it was created. As you point out, I was wrong:

      $ perl -MDevel::Peek -e 'Dump "0.08"; Dump 0.08' SV = PV(0x80306c) at 0x800cc0 REFCNT = 1 FLAGS = (POK,READONLY,pPOK) PV = 0x205700 "0.08"\0 CUR = 4 LEN = 8 SV = NV(0x812e00) at 0x800c6c REFCNT = 1 FLAGS = (NOK,READONLY,pNOK) NV = 0.08

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2020-04-07 16:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    The most amusing oxymoron is:
















    Results (43 votes). Check out past polls.

    Notices?