A static typing, i.e. at compilation time, is nearly impossible.
Otherwise you'd need to type everything, including the result of functions. Even then....¹
A check at runtime is costly, that's why dynamically typed languages are slower, but easier to code.
As I already said, you could tie the variable with a self-made STORE (This, Value) function which does your checks on Value before storing it.
Attribute::Handlers has an example for Syntactic sugar to "hide" the tie-ing procedure behind an attribute.
I'm not aware of any CPAN modules already providing that, especially because there are certainly different models how to react on wrong types ( die , warn , transform, combine)
I already gave you all the links, you'd need to do it yourself for your own needs.
For instance 1E0 is a whole number in float notation, opinions will differ.
I'm saying all of this for completeness, because it's a total overkill for your problem.
There is no magic wand which can do the heavy lifting for you...
Cheers Rolf
(addicted to the Perl Programming Language :)
see Wikisyntax for the Monastery
¹) Perl, like other dynamic languages, does a lot of DWIM typecasting of variables. This doesn't translate well if you want to keep it fast.
In reply to Re^3: way of declare an integer variable instead use /^\d+$/
by LanX
in thread way of declare an integer variable instead use /^\d+$/
by vincentaxhe
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |