May I make a suggestions? in a post in this thread I mention not to underestimate the danger in using not-cryptographically secure RNG (and Perl's isn't).
Also, for checking password suitability one could run candidate password through the 8billion leaked passwords! Too bad it can't be implemented with an online password checker service!!! Or can it? I surely have a hunch it will be popular. https://www.security.org/how-secure-is-my-password hehe
Another thought (i.e. just "theory") for selecting a password: how about checking its statistical distribution? Although finding the S.D. is not reliable with just 8-16 chars I find it a good idea as part of a wider suite of tools, even if only for checking if it resembles english or german, etc., language's S.D. Ideally, I guess, a good password must have a uniform S.D. and also conditional probabilities between adjacent characters to follow uniform S.D., e.g. P(pass[i]|pass[i-1]) = 0.5. That can be extended to pass[i]|pass[j] perhaps.