in reply to Password Generation and Module Multiplication

$password .= @{$classes[$i]}[rand @{$classes[$i]}];

That should really be:

$password .= $classes[$i][rand @{$classes[$i]}];

You don't really want a list on the right hand side of the assignment.