From what I saw of your arguments in this thread, you focus more on container types (scalar/list), whereas I'm focusing on value types (numbers/strings/etc.). Perl isn't latently typed for its container types--it has some very strong and static rules for what you're allowed to do with a scalar and a list:
perl -e '$foo = 1; push $foo, 2'
Type of arg 1 to push must be array (not scalar dereference) at -e lin
+e 1, at EOF
Execution of -e aborted due to compilation errors.
I'm arguing that value types are latent in Perl, and this isn't a good thing considering the advances in type systems over the last 30 years.
Then again, mathmatics has a whole branch dedicated to finding the square roots of negative numbers, which would be impossible without a similar hack . . .
"There is no shame in being self-taught, only in not trying to learn in the first place." -- Atrus, Myst: The Book of D'ni.
|