@lines = ( q{23.40:hello:this:is:a:line}, q{123.38:this:is:another:line}, q{7.32895:yet:another:line}, ); @sorted = map { $_->[1] } sort { $a->[0] <=> $b->[0] } map { [ (split(/:/,$_))[0], $_ ] }@lines; #### @split = sort { $a->[0] <=> $b->[0] } map { [ split /:/ ] } @lines;