我正在尝试执行以下操作。我有一个预定义的列表,用作给定列表中的“order by”。如何按给定顺序对列表进行排序?
my @orderby = ('car', 'boat', 'chicken', 'cat', 'dog', 'mouse');
or
my %orderby = ('car' => 0, 'boat' => 1, 'chicken' => 2, 'cat' => 3, 'dog' => 4, 'mouse' => 5);
my @list = ('boat', 'car', 'mouse', 'chicken');
我尝试了无数的方法来排序它,我没有得到我想要的。我在谷歌上搜索过,但在这里,但我没有找到答案。
@list
需要以这种方式进行排序:
sort @list using %orderby
,我排序后要打印:
car, boat, chicken, mouse
BTW,@list可以有重复的条目:
my @list = ('boat', 'car', 'mouse', 'chicken', 'mouse', 'car');
在这种情况下,打印需要是:
car, car, boat, chicken, mouse, mouse
你们有解决方案吗? 或者其他方法。 谢谢!
回复您的更新,我解决方案处理重复。 – ikegami
是的,我测试过了! Thx再次! – Jonathan