in reply to Read Only Error -- Sorting an Array
Did you increment $readcounter ? Working code:
Update: Most perl programmers would avoid the use of a "$readcounter", and write it as: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
push @data, \@full; # Auto-increments, and appends to @data
I hope life isn't a big joke, because I don't get it.
-SNL
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Read Only Error -- Sorting an Array
by perlstudent89 (Initiate) on Sep 16, 2012 at 17:43 UTC |