mam perla tablicę do wykonania zadań, które wygląda następująco:Niestandardowe sortowanie tablicy w 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"
);
To jest pierwszy numer ID zadania jest. Jeśli zadanie ma ([A-Z]) obok, określa priorytet zadania. Co chcę zrobić, to rodzaj tablicy zadania w sposób, który stawia priorytetowych elementów pierwszy (i w kolejności malejącej, od 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",
);
Nie mogę użyć zwykłego sort()
powodu tych identyfikatorów obok zadań, więc zakładam, że potrzebny jest jakiś niestandardowy podprogram sortowania. Jednak moja wiedza na temat tego, jak zrobić to skutecznie w perlu jest minimalna.
Dzięki, wszystkie.
@Sean: Podczas Transformacja Schwartza jest Groovy (i jest), to jest bardzo trudne do naśladowania, zwłaszcza biorąc pod uwagę, że PO jest początkującym. – Zaid
@Sean - jest to fajne rozwiązanie; Dziękuję Ci. Czy musisz uciec z tego ']' ater: alpha :? @ Zaid - mimo że jestem początkującym, @Sean dał mi ten link, który wyjaśnia transformację Schwartzian, więc mogę ją zrozumieć. :) – ABach
@ABach: Nie, nie ma potrzeby ucieczki; jest to klasa znaków POSIX. (Zobacz stronę perlre man.) ... Ale zrobiłem literówkę ("[: alpha:]]" zamiast "[[: alpha:]]", które właśnie naprawiłem – Sean