Well sorting alphabetically is easy, even a simple search on perlmonks can tell you how to do that. I can even give you the node: How do I sort something alphabetically?
For your result grouping, if you always load the entire file into an array on each page load you can simply do something like
my $start = (get starting number from your input);
for ($start..$start+10)
{
(do things with $array[$_]);
}
You'll have to set it up so that the first time the results are displayed it starts with 0. Then on each page load set the next 10 and previous 10 links to pass paramaters back to be used in $start as $start + 10; or $start - 10;
Oh, also you'll probably want to throw something in to break out of the loop if $_ becomes greater than the size of the array.
I havent really answered your question explicitly, as I got the idea that you just wanted a start, and would sort out the gory stuff yourself :) | [reply] [d/l] |
I'm not sure what you mean to sort by "logical alphabet", but one common way of sorting an array is:
@array = ('george', 'mike', 'steve', 'ray', 'paul', 'brian', 'peter',
+'amos');
@sorted = sort @array;
This above will set @sorted to: amos, brian, george, mike, paul, peter, ray, steve. Note this will place the items in ascii order so if you have numbers in the array, like '7892 and '92', '7892' would actually come before '92' because '7' comes before '9'. To place things in numerical order, you would use @sorted = sort {$a <=> $b } @array;
The first thing that pops into my head for the second half of your question is to create a script that will generate an html page for each group of 10 files. This will give users the ability to jump form page to page randomly as well as sequentially.
Hope this helps.
| [reply] [d/l] [select] |
This is sorting ASCIIbetically rather than alphabetically. What you need is:
@sorted = sort { lc(a) cmp lc($b); } @array;
I'm sure this was covered elsewhere recently...
cLive ;-) | [reply] [d/l] |
oops, just noticed - should be ($a), not (a).
sometims i ttype too quick...
| [reply] |
Others have covered the sorting, but you might want to
take a look at HTML::Pager for displaying the
entries you want per page. Also, depending on your data
you could find the DBD::CSV or DBD::RAM
modules helpful, particularly since both allow you to
execute queries on data stored in a text-only format.
Chris
M-x auto-bs-mode
(update: fixed DBD::RAM link - doh!)
| [reply] |