Perl isn't dynamically typed everywhere, because of funny characters.

It's dynamically typed in the treatment of scalars (a scalar variable, can hold a string, number, or reference value) and specifically in the treatment of references (a reference can be to a value of any type or class rather interchangeably). However, the distinction between scalar, array, and hash variables is fixed -- you cannot put an array into a variable whose name starts with $. --FOo