我正在嘗試執行以下操作。我有一個預定義的列表,用作給定列表中的「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