Perl is not C++. It isn't type-safeWhile the first part is certainly true, the second part is absolutely not. Perl is compile-time type-safe in that a scalar cannot be accessed as a hash or array, nor can an array be accessed as a scalar or hash, etc etc. Perl is also run-time type-safe in that an object method cannot be called on an object that does not understand it without triggering an exception.
Just because Perl is "smalltalk-like" in its type safety doesn't mean you have to "dis" it if you've only seen Java and C++ type-safety.
And for the record, I prefer Perl's type safety to "always and only compile-time" type-safety in those other languages. For every hour you spend "working around" those, you could have been coding another useful hour instead.
Compile-time type safety is neither necessary nor sufficient.