gpt4 book ai didi

perl rand lc/uc

转载 作者:行者123 更新时间:2023-12-02 05:24:49 27 4
gpt4 key购买 nike

我试图在我的 42 个字符密码中随机获取小写/大写。不知何故我反而得到:

ucclcjuczlclucmlc0lcdlc5lc0ucdlccucmucquc5ucslc4lckucxuctlcvlcquclucpuc0ucvlczucducauczlcauc7lciucmlcplcjucolchucmucpuc9lcilcqlck

这是我的代码:

@a = (0 .. 9, 'a' .. 'z');
@case = ('lc','uc');
my $x = join '', map { scalar $case[rand(0-2)], $a[int rand @a]} 0 .. 42;
print "$x\n";

有什么提示吗?

最佳答案

在提供大写和小写列表时使用 lcuc 毫无意义:

use strict;
use warnings;

sub random_pwd {
my $length = shift;
my @chars = (0 .. 9, 'a' .. 'z', 'A' .. 'Z');
return join '', @chars[ map rand @chars, 0 .. $length ];
}
print random_pwd(42);

但是,如果您希望随机化现有字符串中的大写字母,可以采用以下一种方法:

$str =~ s/(\w)/ rand() < 0.5 ? uc($1) : lc($1) /ge;

使用 [a-z] 而不是 \w (它也包括数字)有点严格,但是你失去的只是一些冗余处理(例如 uc ("L")lc("2")),这应该不是问题。

关于perl rand lc/uc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8886425/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com