Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Read Only Error -- Sorting an Array

by NetWallah (Abbot)
on Sep 16, 2012 at 15:29 UTC ( #993923=note: print w/ replies, xml ) Need Help??


in reply to Read Only Error -- Sorting an Array

Please "use strict;" and "use warnings;", particularly if you are a newb.

Did you increment $readcounter ? Working code:

use strict; use warnings; my @data; my $readcounter=0; while (<DATA>) { chomp $_; my @line_array = split(/[()\t+\s+]/, $_); my @full = map {$_ ? $_ : ()} @line_array; @{$data[$readcounter++]} = @full; # My preference## $data[$readcounter++] = \@full; # No Copying # -- Better (but more complex next line:) ## $data[$readcounter++] = [ map {$_ ? $_ : ()} split(/[()\t+\s+] +/, $_)]; } @data = sort { $a->[0] <=> $b->[0] } @data; print qq|@{$_}\n| for @data; __DATA__ 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 00001( P ) 35238 24 38.568 39.327 40.641 253 53 FRM 2
Update: Most perl programmers would avoid the use of a "$readcounter", and write it as:
push @data, \@full; # Auto-increments, and appends to @data

             I hope life isn't a big joke, because I don't get it.
                   -SNL


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 16, 2012 at 17:43 UTC

    Wow! That was exactly what I was looking for. Thanks for the helpful hints!

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (3)
As of 2015-07-06 00:56 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 (68 votes), past polls