【发布时间】:2011-02-25 18:07:30
【问题描述】:
我有一个 perl 待办任务数组,如下所示:
@todos = (
"1 (A) Complete online final @evm4700 t:2010-06-02",
"3 Write thank-you t:2010-06-10",
"4 (B) Clean t:2010-05-30",
"5 Donate to LSF t:2010-06-02",
"6 (A) t:2010-05-30 Pick up dry cleaning",
"2 (C) Call Chris Johnson t:2010-06-01"
);
第一个数字是任务的 ID。如果任务旁边有 ([A-Z]),则定义了任务的优先级。我想要做的是以将优先项放在首位的方式对任务数组进行排序(并按优先级降序排列,从 A - Z):
@todos = (
"1 (A) Complete online final @evm4700 t:2010-06-02",
"6 (A) t:2010-05-30 Pick up dry cleaning",
"4 (B) Clean t:2010-05-30",
"2 (C) Call Chris Johnson t:2010-06-01"
"3 Write thank-you t:2010-06-10",
"5 Donate to LSF t:2010-06-02",
);
我不能使用常规的sort(),因为任务旁边有这些 ID,所以我假设需要某种定制的排序子例程。但是,我对如何在 perl 中有效地做到这一点的了解很少。
谢谢大家。
【问题讨论】: