use String::Random; my $rand = new String::Random; $rand->{'A'} = [ 'A'..'Z', 'a'..'z' ]; $rand->{'D'} = [ '1'..'9' ]; # no zero $passwd = $rand->randpattern("AAAADAAAD"); print "Password $passwd\n";