I think macs-rock was putting all the code together through the copying and pasting in a hurry that he forgot to leave a space between:> $+$r(a,z) there is a space between $+ and $r(a,z) without the space, that identifier will be negated.
One thing about using $str() is that all the generated password will appear the same. Take jonesy's example, and we make it 5, it'll generate a set of 5 random letters like so, > mmmmmLastly, the approach macs-rock's gone for is rather repetitive and inefficient, making the code bigger than it should.