ho una serie perl di attività da svolgere che assomiglia a questo:personalizzato sorta di matrice in 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"
);
Questo primo numero è l'ID del compito. Se un'attività ha ([A-Z]) accanto a, ciò definisce la priorità dell'attività. Quello che voglio fare è sorta la matrice compiti in un modo che pone gli elementi prioritari primo (ed in ordine decrescente di priorità, dalla 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",
);
non posso usare un normale sort()
a causa di quelle ID accanto alle attività, quindi presumo che sia necessaria una sorta di subroutine di ordinamento personalizzata. Tuttavia, la mia conoscenza di come farlo in perl in modo efficiente è minima.
Grazie, tutto.
@Sean: Mentre una Trasformata di Schwartz è Groovy (e del caso), è molto difficile da seguire, specialmente dato che il PO è un principiante. – Zaid
@Sean: questa è una soluzione interessante; grazie. Hai bisogno di scappare da ']' ater: alfa :? @Zaid - Anche se sono un principiante, @Sean mi ha dato quel link che spiega la trasformazione di Schwartz, quindi posso capirlo. :) – ABach
@ABach: No, nessuna necessità di escape; questa è una classe di caratteri POSIX. (Vedi la pagina man di perlre.) ... Ma ho fatto un refuso ("[: alpha:]]" invece di "[[: alpha:]]", che ho appena corretto. – Sean