It allows people that shouldn’t be coding, to write horrid code.

A good example:

"my" variable $cmd masks earlier declaration in same scope at somecrappysource.pm line 166.
"my" variable $cmd masks earlier declaration in same scope at somecrappysource.pm line 168.
"my" variable $cmd masks earlier declaration in same scope at somecrappysource.pm line 170.
"my" variable $cmd masks earlier declaration in same scope at somecrappysource.pm line 172.
"my" variable $cmd masks earlier declaration in same scope at somecrappysource.pm line 174.
"my" variable $cmd masks earlier declaration in same scope at somecrappysource.pm line 184.
"my" variable $cmd masks earlier declaration in same scope at somecrappysource.pm line 198.
"my" variable $cmd masks earlier declaration in same scope at somecrappysource.pm line 326.
"my" variable $cmd masks earlier declaration in same scope at somecrappysource.pm line 360.
"my" variable $cmd masks earlier declaration in same scope at somecrappysource.pm line 394.
"my" variable $cmd masks earlier declaration in same scope at somecrappysource.pm line 428.

Ugh.