sub rndStr{ join'', @_[ map{ rand @_ } 1 .. shift ] } print rndStr 8, 'A'..'Z'; VUXGFLAV print rndStr 8, 'a'..'z'; jplojhxe print rndStr 8, 'a'..'z', 0..9; recv1wym print rndStr 8, 'a'..'z', 0..9; 434d0wwo