sub rp($$$) { my $array_name = shift; my $array_size = shift; my $val = shift; printf "$array_name: %d out of $array_size\n", $val; $val } sub password { my( $s ) = @_; srand( $s ^ time ); my @c = split / */, "bcdfghjklmnpqrstvwxyz"; my @v = split / */, "aeiou"; return map { $c[ rp("c",@c,rand @c) ], $v[ rp('v',@v,rand @v) ] } 1..4; }