数组小写

时间:2013-04-09 20:32:13

标签: arrays perl

我是Perl的新手,我遇到了一个小问题。我试图从数组中选择一个值使其小写。

E.g。

my @letters = qw(A B C D E F F A S D F E S F);

现在我想选择字母F并将其设为小写,我该怎么做呢? 请记住,我的数组非常大,应该可以对用户进行任何更改。

提前致谢。

5 个答案:

答案 0 :(得分:3)

for my $c (@letters) {$c = lc($c) if $c eq"F"}

我绝对不知道你的意思是选择使它成为

答案 1 :(得分:1)

这是我的方法:

my @letters = qw(A B C D E F F A S D F E S F);
@letters = map { tr/F/f/; $_ } @letters;

UPDATE :正如@TLP评论的那样,这是一种更简单的方法:

my @letters = qw(A B C D E F F A S D F E S F);
tr/F/f/ for @letters;

答案 2 :(得分:0)

简短的就地修改是

my @letters = qw(A B C D E F F A S D F E S F);
map {s/(F)/\l$1/;} @letters;
print "@letters";

输出:

 A B C D E f f A S D f E S f

答案 3 :(得分:0)

除非您想保留原始列表

tr/F/f/ for @letters

答案 4 :(得分:-1)

如果您已经知道阵列中的位置,您可以执行:$array[5] = lc($array[5])。如果你不这样做有几种方法。其中一个使用C样式循环:

for (my $i=0; $i < @array; $i++) {
  $array[$i] = lc($array[$i]) if $array[$i] eq 'F';
}

另一个是地图:

map {$_ = lc if $_ eq 'F'} @array;