在for循环中追加/合并数组

问题描述 投票:0回答:2

我正在尝试使用Perl获得所有可能的三联体组合,我如何结合$ x1 $ x2 $ x3以获得AAA AAB AAC ....... DDD?

@myArray = qw/A B C D/;

i=0;
for my $x1 (@myArray) {
    for my $x2 (@myArray) {
        for my $x3 (@myArray) {


        }
    } 
}
perl
2个回答
0
投票

是你追随的吗?

use strict;
use warnings;
use feature 'say';

my $letters = 'ABCD';

my @a = split '', $letters;

for my $x1 (@a) {
    for my $x2 (@a) {
        for my $x3 (@a) {
            my $str = "$x1$x2$x3";
            say $str;
        }
    }
}

0
投票

有四种将字符串组合在一起的常用方法。

  1. 串联

    $x1 . $x2 . $x3
    
  2. 插值

    "$x1$x2$x3"
    
  3. join

    join
  4. join("", $x1, $x2, x3) / sprintf

    sprintf

还有其他人。在需要的特定情况下,使用您认为最易读的任何一种。

例如,在您的情况下,我发现串联最清晰。

printf

例如,当处理任意序列长度而不是固定长度时,printf将更有用。

sprintf("%s%s%s", $x1, $x2, x3)
© www.soinside.com 2019 - 2024. All rights reserved.