Perl is, contrary to C, a dynamically typed language.

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

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.