in reply to Re^3: way of declare an integer variable instead use /^\d+$/
in thread way of declare an integer variable instead use /^\d+$/

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.

allow me to clarify the above, in reference to what you said before that:

You could use Tie::Scalar to make sure that a var $x will always stay +an integer, by declaring STORE. But that will slow down every operati +on on $x.
, just use the slow Tie::Scalar to only do the validation, then store the validated integer into a "normal" variable.

Replies are listed 'Best First'.
Re^5: way of declare an integer variable instead use /^\d+$/
by LanX (Saint) on May 26, 2024 at 11:59 UTC
    > then store the validated integer into a "normal" variable.

    I never said this, but I thought about it in order to limit the speed penalty.

    But using two variables is somehow sabotaging the intent of nicer code....

    I'm not sure about if the performance penalty for tied variables also hits if FETCH was not altered, but I think it's very likely so.

    An XS implementation might levitate this, not sure which kinds of "magic" are possible here.

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