Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
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 taking refuge in the Monastery: (6)
As of 2015-07-04 02:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (57 votes), past polls