my @chars = ('a' .. 'z', 'A' .. 'Z', 0 .. 9); my $password = do {{ local $_ = join "" => map {$chars [rand @chars]} 1 .. 8; redo unless /[a-z]/ && /[A-Z]/ && /\d/; $_; }};