我正在尝试执行以下操作。我有一个预定义的列表,用作给定列表上的“排序依据”。
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
顺便说一句,@list 可以有重复的条目:
my @list = ('boat', 'car', 'mouse', 'chicken', 'mouse', 'car');
在这种情况下,打印需要是:
car, car, boat, chicken, mouse, mouse
你们有解决方案吗?或者可能是另一种方法。谢谢!!