如何按数组顺序打印数组元素值?

Bxr*_*MKH 2 perl

如何按数组元素的顺序打印数组的值?

@ab= <DATA>;
print "@ab\n";
@a = qw(a b c d);
foreach $s(@ab){
   foreach $m (@a){
        $z =~m/$m/g;
        print "$z";
    }
}
__DATA__
d 43
a 5
b 24
d 4
a 12
b 54
c 11
a 1
d 1
a 32
Run Code Online (Sandbox Code Playgroud)

在这个程序中给出输出,但我期望输出是

a 5
a 12
a 1
a 32
b 24
b 54
c 11
d 43
d 4
d 1
Run Code Online (Sandbox Code Playgroud)

首先打印第一个数组元素的匹配值,然后打印第二个,依此类推.我怎么能这样做?

Сух*_*й27 5

你的外环应该循环@a并在内部@ab

my @ab= <DATA>;
my @a = qw(a b c d);

foreach my $m (@a) {
   foreach my $s (@ab) {
        print $s if $s =~ /^$m/;
    }
}
__DATA__
d 43
a 5
b 24
d 4
a 12
b 54
c 11
a 1
d 1
a 32
Run Code Online (Sandbox Code Playgroud)

产量

a 5
a 12
a 1
a 32
b 24
b 54
c 11
d 43
d 4
d 1
Run Code Online (Sandbox Code Playgroud)