[EMAIL PROTECTED] wrote: > Hello List, > > I have a datafile in the simple format of: > > |2500|78|Marky| > |3200|55|Johnny| > |1988|10|Joey| > > etc.... > > What I am trying to do is sort my display out so when the datafile is > read in and then display to the screen as its read in it will show the > entire entry with the largest first cell first and then descending. So > the above would now be displayed as: > > |3200|55|Johnny| > |2500|78|Marky| > |1988|10|Joey| > > to the screen but not changing the actuall data file any. > > I tried using the sort function but it isnt sorting by the first number > bank? Is sort not the way to do this?
Not sure why you have the extra | on the front and back of each line, but it should still sort ok for alpha data (reverse sort of course). If you want a numeric sort, you could try: use strict; my @data = ( '|2500|78|Marky|', '|320|55|Johnny|', # shortened 3200 to 320 for testing multi-length #s '|1988|10|Joey|', ); # Schwartzian transform sort - [2] would be [1] if leading | is missing my @sorted_data = map { $_->[0] } sort { $b->[2] <=> $a->[2] } map { [$_, split /\|/, $_] } @data; foreach (@sorted_data) { print $_, "\n"; } __END__ See perlfunc man page - sort function -- ,-/- __ _ _ $Bill Luebkert ICQ=162126130 (_/ / ) // // DBE Collectibles Mailto:[EMAIL PROTECTED] / ) /--< o // // http://dbecoll.tripod.com/ (Free site for Perl) -/-' /___/_<_</_</_ Castle of Medieval Myth & Magic http://www.todbe.com/ _______________________________________________ Perl-Unix-Users mailing list [EMAIL PROTECTED] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs