【发布时间】:2019-03-30 11:24:29
【问题描述】:
我需要 Perl 代码将一个数组中的数字排列到另一个数组中而不对其进行排序。所以,输入:(10, 4, 2, 9, 32) => 输出:(4, 2, 1, 3, 5)
我有这段代码很接近,但我发现它没用,因为输入和输出不是我想要的:
use strict;
use warnings;
use Data::Dumper;
my %data =
(
1 => 10,
2 => 4,
3 => 2,
4 => 9,
5 => 32,
);
my ($n, @rank) = 1;
foreach( keys %data){
$rank[ $data{$_} ] .= "$_ ";
}
defined and $n += print for @rank;
以上代码输出:
3 2 4 1 5
输出是错误的,而且输出根本不是必需的,我只希望我的结果数组@rank 像描述的那样作为一维数组。如果可以不将键分配给输入数组数据,则最好。
【问题讨论】: