in reply to How to check if a scalar value is numeric or string?
But it is always getting interpreted as a number.
Actually, they're both getting interpreted as strings. The regex match operator only works on strings, so if it's operand isn't a string, it automatically converts the operand to a string.
Then you use the match operator to check if the string contains something that looks like a number. And since it does, you print your message.
As for the answer to your question, Perl doesn't see the difference you see. If it needs a string, it automatically converts the number into a string (and the variable then holds both a number and a string). If it needs a number, it automatically converts the string into a number (and the variable then holds both a number and a string). It has no compunction against doing so on a while, even for constants.
|
---|