I guess what I'm really after is a psuedo strong type casting option for variables. In other words, if I used a scalar in
string context, I want to be warned if I later use it as a number (even if it looks like a number).
Then you shouldn't have used Perl to begin with. This automatic
casting between numbers and strings is a feature, just as it's
considered a feature in C that if you divide a float by an
integer, the integer is casted to a float.
Also realize that in Perl, that any checking of the form "is this
a number" has to be done at run-time (unlike the typechecking
in C that can be done in compile time). You really don't want
to do a check for each operation, the slowdown would be noticeable.
You get the "Argument 'foo' isn't numeric" for 'free', because
Perl needs to convert the string value to a numeric value,
and the C library functions strto* will flag failure. You will
notice that you get the warning only if Perl hasn't attempted
to translate the string value to a numeric value - if Perl
already did this (unsuccesfully), you don't get a warning.
Abigail