devxlogo

Sorting a Two-Dimensional Array With <=>

Sorting a Two-Dimensional Array With <=>

The Perl sort function is useful for alphabetically sorting lists. However, you can’t use it on a list of lists, because once a list starts listing other lists, they cease to be lists and become references instead. By sorting arrays within arrays, it’s possible to gain relational database-like control over data grids.

For example, let’s say I have a list of lists called @biglist. To print all of its unsorted contents, I would write:

 for $list_ref ( @biglist ) {	print "@$list_ref 
";}

To sort @biglist by the first element in each list, I would write:

 for $list_ref ( sort { $a->[0]  $b->[0] } @biglist ) {    print " @$list_ref 
";} 

devx-admin

Share the Post: