in reply to table sorting of hashes

The logic still depends on dividing the array length by the number of columns to obtain an approximation of the max rows required, so it won't always work as expected. I don't see any clean way to circumvent such a dependence, so failsafes would have to be implemented for uneven division results to ensure proper execution.
#!/usr/bin/perl use strict; my @sorted_list = qw(a b c d e f g h i j k l m n); my @new_list; my $cols = '3'; my $element = '0'; while ($element <= $#sorted_list) { for my $x (0..(@sorted_list / $cols)) { push @{$new_list[$x]}, $sorted_list[$element++]; } } for my $row (@new_list) { for (@{$row}) { print "$_ "; } print "\n"; } __END__ a f k b g l c h m d i n e j

Roses are red, violets are blue. All my base, are belong to you.