jb4 StrongTyping != evil for all values of StrongTyping
Actually, I like to use the term Manifest typing rather than strong or static typing. Some static, but non-manifest typing systems (such as the one in Haskel) looks rather promising.
There's a lot of confusion regarding static, strong, weak, dynamic (etc.) typing. Here's my general definitions ...
Strong: No type errors can happen unnoticed.
Weak: Type errors can happen unnoticed.
Static: The type of an object can be determine at compile time.
Dynamic: The type of an object cannot (in general) be known at compile time.
Manifest: Every variable must be explicitly declared.
Ruby, Python, Smalltalk and brethern are have Strong, Dynamic, non-manifest typing.
Haskel has Strong, static non-manifest typing.
Eiffel has Strong, Static and Manifest typing.
Java has Strong, Static, Manifest typing, with a tendency to use dynamic typing in collections (and therefore suffers from the drawbacks of both manifest and dynamic typing).
C is also manifest and static, but with a lot of weak type holes (where you can accidently circumvent the type system).
C++ has manifest static typing and has closed many of the accidental type holes in C, but still allows the programmer to delibrately circumvent the type system.
FORTH would be dynamic, non-manifest and VERY weakly typed.
Perl is a tough one. One one hand, I would expect it to be similar to Python or Ruby. But if you consider the types in Perl to be scaler, list and hash, then Perl would have static and manifest typing.
There's a good article on strong typing at [link|http://perl.plover.com/yak/typing/|http://perl.plover.com/yak/typing/].
Have fun.