in reply to Print array vertically (in columns)
Nice solution! We ran into this issue doing a header for a grid of open ports on network systems (input generated by nmap). Since we knew the max length of our input (5 digits for tcp ports), we use this solution:
sub numerically { $a <=> $b }; my @portsorted = sort numerically keys %ports; my @header; for (@portsorted) { my @portchars = split //, $_ . ' ' x (5 - length()); for ( 0 .. 4 ) { push @{$header[$_]}, $portchars[$_]; } } for (@header) { print "\t\t ", join('|',@{$_}), "\n"; } print "IPs\t\t ", '_|' x scalar(@portsorted), "\n"; __END__ outputs this (tabs notwithstanding): 2|8|1|1|4|4|9 2|0|1|3|4|4|3 | |1|9|3|5|8 | | | | | | | | | | | | IPs _|_|_|_|_|_|_|
Obviously yours has more appeal as a general solution, since we don't have options for alignment, spacing, or so forth.
|
|---|