"0.08' doesn't fit in here. Using xdg's example:
our $VERSION = '0.08';
$Version = eval $VERSION;
It's the "decimal alpha version" or the numbers used by "developer releases".
Those releases must use decimal alpha to keep from reporting the wrong module version number.
our $VERSION = '0.001_001';
$VERSION = eval $VERSION;
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
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.
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:
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 $var = 'string looking like a number';
$var = eval $var;
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