use strict; use warnings; use 5.010; my $data =<<"END_OF_DATA"; 1.000 64.103 2840.0 1.000 42.735 2840.0 1.000 32.051 2840.0 1.050 64.103 3280.0 1.050 42.735 3280.0 1.050 32.051 3280.0 1.100 64.103 3720.0 1.100 42.735 3720.0 1.100 32.051 3720.0 END_OF_DATA say $data; --output:-- 1.000 64.103 2840.0 1.000 42.735 2840.0 1.000 32.051 2840.0 1.050 64.103 3280.0 1.050 42.735 3280.0 1.050 32.051 3280.0 1.100 64.103 3720.0 1.100 42.735 3720.0 1.100 32.051 3720.0 my @lines; #OPEN YOUR FILE HERE: open my $INFILE, '<', \$data or die "Couldn't open string for reading: $!"; #What I did was I opened the string $data as if it were a file. #Now I can treat $INFILE as if it were a file... for my $line (<$INFILE>) { chomp $line; if($line) { push @lines, [split ' ', $line]; } } use Data::Dumper; say Dumper(\@lines); --output:-- $VAR1 = [ [ '1.000', '64.103', '2840.0' ], [ '1.000', '42.735', '2840.0' ], [ '1.000', '32.051', '2840.0' ], [ '1.050', '64.103', '3280.0' ], [ '1.050', '42.735', '3280.0' ], [ '1.050', '32.051', '3280.0' ], [ '1.100', '64.103', '3720.0' ], [ '1.100', '42.735', '3720.0' ], [ '1.100', '32.051', '3720.0' ] ]; my @sorted = sort{ $a->[1] <=> $b->[1] or $a->[0] <=> $b->[0]} @lines; say Dumper(\@sorted); --output:-- $VAR1 = [ [ '1.000', '32.051', '2840.0' ], [ '1.050', '32.051', '3280.0' ], [ '1.100', '32.051', '3720.0' ], [ '1.000', '42.735', '2840.0' ], [ '1.050', '42.735', '3280.0' ], [ '1.100', '42.735', '3720.0' ], [ '1.000', '64.103', '2840.0' ], [ '1.050', '64.103', '3280.0' ], [ '1.100', '64.103', '3720.0' ] ]; my @results = map {my @arr = @$_; join ' ', @arr} @sorted; say Dumper(\@results); --output:-- $VAR1 = [ '1.000 32.051 2840.0', '1.050 32.051 3280.0', '1.100 32.051 3720.0', '1.000 42.735 2840.0', '1.050 42.735 3280.0', '1.100 42.735 3720.0', '1.000 64.103 2840.0', '1.050 64.103 3280.0', '1.100 64.103 3720.0' ]; for (@results) { say; } --output:-- 1.000 32.051 2840.0 1.050 32.051 3280.0 1.100 32.051 3720.0 1.000 42.735 2840.0 1.050 42.735 3280.0 1.100 42.735 3720.0 1.000 64.103 2840.0 1.050 64.103 3280.0 1.100 64.103 3720.0
In reply to Re^3: Classic Sort Algorithm
by 7stud
in thread Classic Sort Algorithm
by BoulderBuff64
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |