my %subcat = (Foo => 3, Bar => 2, Baz => 10, Quux => 1);
my @Keys = keys %subcat;
while (my $Temp = [splice @Keys, 0, 3]){
print "
\n";
print defined @$Temp[0] ? " | @$Temp[0] ($subcat{@$Temp[0]}) | \n"
: " | \n";
print defined @$Temp[1] ? " @$Temp[1] ($subcat{@$Temp[1]}) | \n"
: " | \n";
print defined @$Temp[2] ? " @$Temp[2] ($subcat{@$Temp[2]}) | \n"
: " | \n";
print "
\n";
last unless @Keys;
}