Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Read Only Error -- Sorting an Array

by Cristoforo (Deacon)
on Sep 17, 2012 at 01:29 UTC ( #993946=note: print w/ replies, xml ) Need Help??


in reply to Read Only Error -- Sorting an Array

Because the leading digits are '0' padded, you can take advantage of that fact. They can be sorted by a simple lexical sort. Just another approach, but a simpler one.  :-)

map creates an anonymous array reference filled with the fields that have been split and assigned to the array reference. Because you sort the file lines, @sorted collects array references in sorted order;

#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @sorted = map [ split /[()\s]+/ ], sort <DATA>; print Dumper \@sorted; __DATA__ 00000(IDR) 86480 22 41.435 40.696 40.728167 0 FRM 3 00015( B ) 9312 24 45.460 43.808 42.001 409 208 FRM 0 00002( P ) 35248 24 38.568 39.327 40.641 253 53 FRM 2
Output was:
$VAR1 = [ [ '00000', 'IDR', '86480', '22', '41.435', '40.696', '40.728167', '0', 'FRM', '3' ], [ '00002', 'P', '35248', '24', '38.568', '39.327', '40.641', '253', '53', 'FRM', '2' ], [ '00015', 'B', '9312', '24', '45.460', '43.808', '42.001', '409', '208', 'FRM', '0' ] ];
Update: Since the you have tabs, perhaps you are dealing with tab separated data, so perhaps a simple split /\t/ would do. If you wanted to get the values in the parentheses, you could easily extract them later. Just a thought. The change would be:
my @sorted = map{chomp; [ split /\t/ ]} sort <DATA>;


Comment on Re: Read Only Error -- Sorting an Array
Select or Download Code
Re^2: Read Only Error -- Sorting an Array
by perlstudent89 (Initiate) on Sep 18, 2012 at 02:52 UTC
    I like this solution, but it won't work for me because it turns out I needed to do some processing before I sorted. I will definitely keep this in mind for next time.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://993946]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (11)
As of 2014-07-30 14:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (234 votes), past polls